
/* WARNING: Type propagation algorithm not settling */

void __gmpz_powm_sec(mpz_ptr r,mpz_srcptr b,mpz_srcptr e,mpz_srcptr m)

{
  bool bVar1;
  longlong lVar2;
  undefined *puVar3;
  Elf32_Ehdr *pEVar4;
  uint uVar5;
  Elf32_Ehdr *pEVar6;
  int iVar7;
  word *pwVar8;
  Elf32_Ehdr *pEVar9;
  undefined4 uVar10;
  Elf32_Ehdr *pEVar11;
  int *piVar12;
  word *pwVar13;
  byte *pbVar14;
  byte *pbVar15;
  Elf32_Ehdr *pEVar16;
  uint uVar17;
  char *pcVar18;
  uint *puVar19;
  Elf32_Ehdr *pEVar20;
  undefined4 uVar21;
  uint *puVar22;
  Elf32_Ehdr *pEVar23;
  undefined4 uVar24;
  Elf32_Ehdr *pEVar25;
  undefined4 uVar26;
  Elf32_Ehdr *pEVar27;
  undefined4 *puVar28;
  undefined4 uVar29;
  undefined4 uVar30;
  Elf32_Ehdr *pEVar31;
  mp_srcptr pmVar32;
  undefined4 *puVar33;
  int iVar34;
  Elf32_Ehdr *in_t1;
  byte *in_t2;
  Elf32_Ehdr *in_t3;
  undefined1 *puVar35;
  Elf32_Ehdr *unaff_s0;
  int iVar36;
  int *piVar37;
  Elf32_Ehdr *pEVar38;
  mp_ptr tp;
  Elf32_Ehdr *pEVar39;
  int *piVar40;
  Elf32_Ehdr *unaff_s5;
  undefined4 uVar41;
  Elf32_Ehdr *pEVar42;
  undefined *puVar43;
  code *pcVar44;
  undefined1 *puVar45;
  undefined1 *puVar46;
  undefined1 *puVar47;
  undefined1 *puVar48;
  undefined1 *puVar49;
  int iVar50;
  code *pcVar51;
  code *pcVar52;
  uint uVar53;
  uint uVar54;
  uint uVar55;
  undefined8 uVar56;
  undefined1 auStack_68 [32];
  tmp_reentrant_t *__tmp_marker;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_00097540;
  puVar48 = auStack_68;
  puVar45 = auStack_68;
  puVar49 = auStack_68;
  puVar35 = auStack_68;
  pEVar4 = (Elf32_Ehdr *)m->_mp_size;
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  pEVar9 = (Elf32_Ehdr *)-(int)pEVar4;
  if (-1 < (int)pEVar4) {
    pEVar9 = pEVar4;
  }
  pEVar38 = (Elf32_Ehdr *)e;
  if (pEVar4 != (Elf32_Ehdr *)0x0) goto LAB_00030070;
  do {
    do {
      (*(code *)PTR___gmp_divide_by_zero_000975dc)();
LAB_00030070:
      puVar19 = m->_mp_d;
      uVar5 = *puVar19;
      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);
    } while (pEVar4 == (Elf32_Ehdr *)0x0);
    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;
    pEVar16 = pEVar9;
    if (0 < (int)pEVar25) {
      pEVar6 = (Elf32_Ehdr *)b->_mp_size;
      pEVar27 = pEVar6;
      if ((int)pEVar6 < 0) {
        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;
      }
      if (pEVar6 == (Elf32_Ehdr *)0x0) {
        r->_mp_size = 0;
        puVar48 = auStack_68;
        goto LAB_00030200;
      }
      iVar36 = (int)pEVar25 << 5;
      __tmp_marker = (tmp_reentrant_t *)0x0;
      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);
      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;
      if (uVar5 < 0x7f01) {
        iVar7 = -(uVar5 + 7 & 0xfffffff8);
        puVar45 = auStack_68 + iVar7;
        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);
      }
      else {
        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);
      }
      in_t2 = (byte *)((int)pEVar9 * 4);
      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;
      pEVar25 = (Elf32_Ehdr *)b->_mp_d;
      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);
      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;
      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;
      *(uint **)(puVar45 + 0x14) = puVar19;
      *(int *)(puVar45 + 0x10) = iVar36;
      pEVar38 = in_t3;
      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);
      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;
      iVar7 = *(int *)pwVar8;
      pEVar6 = in_t1;
      pEVar4 = pEVar9;
      goto joined_r0x00030154;
    }
  } while (pEVar25 != (Elf32_Ehdr *)0x0);
  if (pEVar9 == (Elf32_Ehdr *)&DAT_00000001) {
    uVar5 = (uint)(uVar5 != 1);
  }
  else {
    uVar5 = 1;
  }
  r->_mp_size = uVar5;
  *r->_mp_d = 1;
LAB_00030200:
  if (local_2c == *(int *)puVar3) {
    return;
  }
  pcVar51 = mod;
  puVar43 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  *(undefined **)(puVar48 + -0x24) = puVar3;
  piVar37 = *(int **)(puVar43 + 0x67110);
  puVar33 = *(undefined4 **)(puVar48 + 0x10);
  *(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10;
  *(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5;
  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16;
  *(mpz_srcptr *)(puVar48 + -0x1c) = m;
  *(mpz_srcptr *)(puVar48 + -0x20) = b;
  *(code **)(puVar48 + -4) = pcVar51;
  *(undefined1 **)(puVar48 + -8) = auStack_68;
  *(mpz_ptr *)(puVar48 + -0xc) = r;
  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9;
  *(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0;
  *(undefined4 *)(puVar48 + -0x30) = 0;
  uVar41 = *(undefined4 *)(puVar48 + 0x14);
  *(int *)(puVar48 + -0x2c) = *piVar37;
  pEVar16 = pEVar4;
  pEVar27 = pEVar25;
  if (pEVar38 == (Elf32_Ehdr *)&DAT_00000001) {
    pEVar6 = (Elf32_Ehdr *)0x0;
    pcVar51 = *(code **)(puVar43 + 0x66e78);
    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;
    uVar10 = (*pcVar51)(uVar41);
    iVar7 = *(int *)(puVar48 + -0x38);
    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);
    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);
    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);
    pEVar4->e_ident_magic_str[2] = (char)uVar10;
LAB_0003056c:
    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);
    pcVar51 = *(code **)(iVar7 + -0x7a2c);
    pEVar38 = unaff_s0;
    puVar49 = puVar35;
    if (pEVar23 != (Elf32_Ehdr *)0x0) {
LAB_00030534:
      (*pcVar51)();
      iVar7 = *(int *)(puVar48 + -0x38);
    }
  }
  else {
    pEVar6 = pEVar4;
    unaff_s0 = pEVar38;
    if (pEVar38 == (Elf32_Ehdr *)0x2) {
      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;
      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;
      pcVar51 = *(code **)(puVar43 + 0x66f54);
      *(undefined4 *)(puVar48 + -0x40) = *puVar33;
      *(undefined4 *)(puVar48 + -0x44) = uVar21;
      *(undefined4 *)(puVar48 + -0x48) = uVar10;
      (*pcVar51)(uVar41);
      iVar7 = *(int *)(puVar48 + -0x38);
      puVar35 = auStack_68;
      goto LAB_0003056c;
    }
    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {
      uVar10 = *puVar33;
      pcVar51 = *(code **)(puVar43 + 0x6700c);
      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;
      *(undefined4 *)(puVar48 + -0x44) = uVar10;
      pEVar16 = pEVar25;
      pEVar27 = (Elf32_Ehdr *)e;
      (*pcVar51)(uVar41);
      iVar7 = *(int *)(puVar48 + -0x38);
      puVar35 = auStack_68;
      goto LAB_0003056c;
    }
    if ((int)pEVar38 < 200) {
LAB_00030504:
      pcVar51 = *(code **)(puVar43 + 0x6709c);
    }
    else {
      pcVar51 = *(code **)(puVar43 + 0x6709c);
      puVar49 = auStack_68;
      if (3999 < (int)pEVar25) {
        puVar49 = (undefined1 *)((int)pEVar38 * 4);
        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +
            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=
            (double)(int)pEVar38 * (double)(int)pEVar25) {
          r = (mpz_ptr)(puVar48 + -0x30);
          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);
          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);
          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);
          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;
          *(undefined4 *)(puVar48 + -0x40) = uVar10;
          *(mpz_srcptr *)(puVar48 + -0x48) = e;
          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);
          pEVar6 = pEVar9;
          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);
          iVar7 = *(int *)(puVar48 + -0x38);
          uVar10._0_1_ = pEVar9->e_ident_magic_num;
          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];
          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];
          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];
          pEVar38 = pEVar4;
          pEVar23 = pEVar9;
          do {
            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);
            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);
            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);
            pEVar38->e_ident_magic_str[2] = (char)uVar10;
            pwVar8 = (word *)((int)pwVar8 + -1);
            uVar10._0_1_ = pEVar23->e_ident_class;
            uVar10._1_1_ = pEVar23->e_ident_data;
            uVar10._2_1_ = pEVar23->e_ident_version;
            uVar10._3_1_ = pEVar23->e_ident_osabi;
            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;
          } while (pwVar8 != (word *)0x0);
          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);
          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);
          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;
          unaff_s0 = (Elf32_Ehdr *)0x0;
          puVar35 = puVar49;
          goto LAB_0003056c;
        }
        goto LAB_00030504;
      }
    }
    *(undefined4 **)(puVar48 + -0x44) = puVar33;
    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;
    pEVar16 = pEVar25;
    pEVar27 = (Elf32_Ehdr *)e;
    (*pcVar51)(uVar41);
    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);
    iVar7 = *(int *)(puVar48 + -0x38);
    if (pEVar23 != (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(iVar7 + -0x7a2c);
      goto LAB_00030534;
    }
  }
  if (*(int *)(puVar48 + -0x2c) == *piVar37) {
    return;
  }
  pcVar51 = *(code **)(iVar7 + -0x7b70);
  pcVar52 = reduce;
  (*pcVar51)();
  pcVar44 = pcVar51 + 0x6e978;
  puVar35 = puVar48 + -0xb0;
  *(mpz_srcptr *)(puVar48 + -0x70) = e;
  *(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9;
  pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4);
  pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);
  *(undefined1 **)(puVar48 + -0x60) = puVar49;
  *(mpz_ptr *)(puVar48 + -100) = r;
  *(undefined4 *)(puVar48 + -0x6c) = uVar41;
  *(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4;
  *(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25;
  *(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38;
  *(code **)(puVar48 + -0x5c) = pcVar52;
  *(int **)(puVar48 + -0x7c) = piVar37;
  *(code **)(puVar48 + -0x98) = pcVar44;
  *(undefined4 *)(puVar48 + -0x88) = 0;
  pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48);
  pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44);
  *(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num;
  if (pEVar42 < (Elf32_Ehdr *)0x7f01) {
    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);
    puVar35 = puVar48 + iVar7 + -0xb0;
    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);
  }
  else {
    pcVar51 = *(code **)(pcVar51 + 0x66c28);
    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;
    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);
    pcVar44 = *(code **)(puVar48 + -0x98);
    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);
  }
  uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4;
  pcVar51 = *(code **)(pcVar44 + -0x7d50);
  if (uVar5 < 0x7f01) {
    iVar7 = -(uVar5 + 7 & 0xfffffff8);
    puVar49 = puVar35 + iVar7 + 0x18;
    puVar35 = puVar35 + iVar7;
  }
  else {
    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;
    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);
    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);
  }
  if (pEVar16 != (Elf32_Ehdr *)0x0) {
    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);
    uVar41._0_1_ = pEVar6->e_ident_magic_num;
    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];
    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];
    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];
    pEVar25 = pEVar38;
    pEVar42 = pEVar6;
    if (pwVar8 == (word *)0x0) {
      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);
      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);
      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);
      pEVar38->e_ident_magic_str[2] = (char)uVar41;
      pEVar42 = pEVar38;
    }
    else {
      do {
        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);
        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);
        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);
        pEVar25->e_ident_magic_str[2] = (char)uVar41;
        pwVar8 = (word *)((int)pwVar8 + -1);
        uVar41._0_1_ = pEVar42->e_ident_class;
        uVar41._1_1_ = pEVar42->e_ident_data;
        uVar41._2_1_ = pEVar42->e_ident_version;
        uVar41._3_1_ = pEVar42->e_ident_osabi;
        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;
        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;
      } while (pwVar8 != (word *)0x0);
      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);
      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);
      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);
      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);
      pEVar42->e_ident_magic_str[2] = (char)uVar41;
    }
  }
  *(undefined1 **)(puVar35 + 0x14) = puVar49;
  *(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4;
  pEVar25 = pEVar16;
  pEVar31 = pEVar9;
  mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,
      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14));
  iVar7 = *(int *)(puVar48 + -0x98);
  if (pEVar9 != (Elf32_Ehdr *)0x0) {
    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);
    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;
    pEVar20 = pEVar23;
    pEVar11 = pEVar38;
    if (pwVar8 != (word *)0x0) {
      do {
        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;
        pwVar8 = (word *)((int)pwVar8 + -1);
        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;
        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;
        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;
      } while (pwVar8 != (word *)0x0);
      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);
      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));
    }
    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;
  }
  piVar37 = *(int **)(puVar48 + -0x88);
  if (piVar37 != (int *)0x0) {
    (**(code **)(iVar7 + -0x7a2c))();
    iVar7 = *(int *)(puVar48 + -0x98);
  }
  iVar34._0_1_ = pEVar39->e_ident_magic_num;
  iVar34._1_1_ = pEVar39->e_ident_magic_str[0];
  iVar34._2_1_ = pEVar39->e_ident_magic_str[1];
  iVar34._3_1_ = pEVar39->e_ident_magic_str[2];
  if (*(int *)(puVar48 + -0x84) == iVar34) {
    return;
  }
  pcVar44 = *(code **)(iVar7 + -0x7b70);
  pcVar52 = __gmpz_powm_ui;
  (*pcVar44)();
  pcVar51 = pcVar44 + 0x6e770;
  puVar33 = *(undefined4 **)(pcVar44 + 0x66c70);
  puVar47 = puVar35 + -0xa0;
  puVar49 = puVar35 + -0xa0;
  puVar46 = puVar35 + -0xa0;
  *(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0;
  *(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6;
  *(code **)(puVar35 + -4) = pcVar52;
  *(undefined4 **)(puVar35 + -0x58) = puVar33;
  *(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4;
  *(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42;
  *(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39;
  *(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9;
  *(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38;
  *(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23;
  *(code **)(puVar35 + -0x88) = pcVar51;
  *(int **)(puVar35 + -0x54) = piVar37;
  *(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25;
  *(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31;
  *(undefined4 *)(puVar35 + -0x2c) = *puVar33;
  pEVar6 = pEVar27;
  if (pEVar27 < (Elf32_Ehdr *)0x14) {
    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;
    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;
    pEVar42 = pEVar11;
    if ((int)pEVar11 < 0) {
      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;
    }
    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;
    if (pEVar11 == (Elf32_Ehdr *)0x0) {
      pEVar9 = pEVar27;
      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();
LAB_00031228:
      uVar5 = (uint)uVar56;
      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));
      puVar49 = puVar47;
    }
    else {
      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);
      if (pEVar27 == (Elf32_Ehdr *)0x0) {
        uVar5 = 1;
        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {
          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);
        }
        piVar37 = *(int **)(puVar35 + -0x54);
        piVar37[1] = uVar5;
        *(undefined4 *)piVar37[2] = 1;
        puVar49 = puVar35 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar35 + -0x40) = 0;
      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;
      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);
      if (pEVar25 < &Elf32_Ehdr_00010000) {
        iVar7 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar25) {
          iVar7 = 0x18;
        }
        iVar36 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar25) {
          iVar36 = 1;
        }
      }
      else {
        iVar7 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar25) {
          iVar7 = 8;
        }
        iVar36 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {
          iVar36 = 0x11;
        }
      }
      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);
      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];
      *(int *)(puVar35 + -0x6c) = iVar7;
      puVar47 = puVar35 + -0xa0;
      if (iVar7 != 0) {
        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {
          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);
          puVar46 = puVar35 + iVar7 + -0xa0;
          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);
        }
        else {
          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);
          pcVar51 = *(code **)(puVar35 + -0x88);
        }
        (**(code **)(pcVar51 + -0x7ad4))
                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)
                  );
        pcVar51 = *(code **)(puVar35 + -0x88);
        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;
        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));
        puVar47 = puVar46;
      }
      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {
        FUN_00030a38();
        return;
      }
      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);
      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);
      if (pEVar9 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;
      in_t2 = (byte *)((uint)pEVar25 & 0xffff);
      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);
      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);
      uVar5 = uVar54;
      in_t1 = pEVar31;
      puVar49 = puVar47;
      if (pEVar39 < in_t3) {
        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);
        uVar5 = uVar54 - 1;
        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))
        goto LAB_00031228;
      }
    }
    if (pEVar9 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;
    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);
    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);
    uVar54 = uVar55;
    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&
       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))
       )) {
      uVar54 = uVar55 - 1;
    }
    uVar54 = uVar5 << 0x10 | uVar54;
    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);
    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    if (pEVar9 < pEVar31) {
      uVar5 = pEVar9 < pEVar25 ^ 1;
      pEVar39 = pEVar25;
      if (uVar5 == 0) {
        pEVar39 = (Elf32_Ehdr *)0x0;
      }
      uVar54 = (uVar54 - 1) - uVar5;
      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));
      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    }
    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);
    uVar5 = uVar54;
    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&
       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||
        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {
      uVar5 = uVar54 - 2;
    }
    *(uint *)(puVar35 + -0x44) = uVar5;
    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);
    pEVar9 = pEVar31;
    if ((int)pEVar31 < 0) {
      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;
    }
    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);
    if ((int)pEVar9 <= (int)pEVar42) {
      if (pEVar31 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;
        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;
        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      piVar37 = *(int **)(puVar35 + -0x40);
      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;
      if (piVar37 == (int *)0x0) goto LAB_00030c64;
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
LAB_00030c08:
      (*pcVar51)();
      pcVar51 = *(code **)(puVar35 + -0x88);
      goto LAB_00030c64;
    }
    uVar5 = *(int *)(puVar35 + -0x50) + 4;
    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);
    *(uint *)(puVar35 + -0x70) = uVar5;
    if (pEVar38 == (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7d50);
      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;
      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));
      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);
      *(undefined4 *)(puVar35 + -100) = uVar41;
    }
    else {
      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;
      puVar49 = puVar49 + iVar7;
    }
    tp = *(mp_ptr *)(puVar35 + -100);
    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);
    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;
    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;
    pEVar25 = pEVar39;
    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),
           *(gmp_pi1_t **)(puVar49 + 0x14));
    pcVar51 = *(code **)(puVar35 + -0x88);
    pEVar9 = pEVar42;
    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {
      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);
      do {
        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);
        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar37 = (int *)(iVar7 + -8);
        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);
        iVar7 = iVar7 + -4;
      } while (*piVar37 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar42 * 8 + 4U < 0x7f01) {
      iVar7 = -((int)pEVar42 * 8 + 8);
      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);
      puVar49 = puVar49 + iVar7;
    }
    else {
      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);
      pcVar51 = *(code **)(puVar35 + -0x88);
    }
    if (pEVar38 == (Elf32_Ehdr *)0x0) {
      pEVar4 = (Elf32_Ehdr *)
               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));
      pcVar51 = *(code **)(puVar35 + -0x88);
    }
    else {
      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {
      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;
      puVar49 = puVar49 + iVar7;
    }
    else {
      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);
      pcVar51 = *(code **)(puVar35 + -0x88);
      *(undefined4 *)(puVar35 + -0x74) = uVar41;
    }
    puVar33 = *(undefined4 **)(puVar35 + -100);
    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);
    pEVar25 = (Elf32_Ehdr *)*puVar33;
    pEVar38 = pEVar4;
    pwVar13 = pwVar8;
    if (pwVar8 != (word *)0x0) {
      do {
        puVar33 = puVar33 + 1;
        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;
        pwVar13 = (word *)((int)pwVar13 + -1);
        pEVar25 = (Elf32_Ehdr *)*puVar33;
        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
      } while (pwVar13 != (word *)0x0);
      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);
    }
    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;
    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);
    iVar7 = 0x1f - (int)pEVar23;
    pEVar16 = pEVar9;
    if (iVar7 == 0) {
      if (pEVar42 == pEVar9) {
        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;
        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;
        do {
          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);
          pwVar8 = (word *)((int)pwVar8 + -1);
          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {
            pcVar44 = *(code **)(pcVar51 + -0x7b2c);
            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;
            goto LAB_00030dd0;
          }
          pbVar14 = pbVar14 + -4;
          iVar7 = iVar7 + -4;
        } while (pwVar8 != (word *)0xffffffff);
        pcVar44 = *(code **)(pcVar51 + -0x7b2c);
LAB_00031264:
        pEVar25 = pEVar4;
        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);
        pcVar51 = *(code **)(puVar35 + -0x88);
      }
    }
    else {
      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;
      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);
      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);
      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;
      do {
        pEVar25 = pEVar4;
        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);
        pEVar16 = (Elf32_Ehdr *)
                  ((int)pEVar16 * 2 -
                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +
                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));
        pcVar51 = *(code **)(puVar35 + -0x88);
        if ((int)pEVar16 < (int)pEVar42) {
          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 != (Elf32_Ehdr *)0x0) {
            uVar29._0_1_ = pEVar39->e_ident_magic_num;
            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];
            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];
            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];
            pEVar38 = pEVar4;
            if (pwVar8 != (word *)0x0) {
              pbVar14 = &pEVar39->e_ident_class;
              do {
                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
                pEVar38->e_ident_magic_str[2] = (char)uVar29;
                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);
                pwVar8 = (word *)((int)pwVar8 + -1);
                uVar29 = *(undefined4 *)pbVar14;
                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
                pbVar14 = (byte *)pEVar25;
              } while (pwVar8 != (word *)0x0);
              pEVar38 = (Elf32_Ehdr *)
                        (&pEVar4->e_ident_magic_num +
                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);
            }
            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
            pEVar38->e_ident_magic_str[2] = (char)uVar29;
          }
          pcVar44 = *(code **)(pcVar51 + -0x7d8c);
        }
        else {
          uVar41 = *(undefined4 *)(puVar35 + -0x4c);
          pcVar51 = *(code **)(puVar35 + -0x7c);
          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);
          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;
          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);
          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);
          pcVar51 = *(code **)(puVar35 + -0x88);
          uVar21._0_1_ = pEVar39->e_ident_magic_num;
          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];
          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];
          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];
          if (pwVar8 == (word *)0x0) {
            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
            pEVar4->e_ident_magic_str[2] = (char)uVar21;
          }
          else {
            pEVar38 = pEVar4;
            pbVar14 = &pEVar39->e_ident_class;
            do {
              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);
              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);
              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);
              pEVar38->e_ident_magic_str[2] = (char)uVar21;
              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);
              pwVar8 = (word *)((int)pwVar8 + -1);
              uVar21 = *(undefined4 *)pbVar14;
              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
              pbVar14 = (byte *)pEVar16;
            } while (pwVar8 != (word *)0x0);
            **(undefined4 **)(puVar35 + -0x80) = uVar21;
          }
          pcVar44 = *(code **)(pcVar51 + -0x7d8c);
          pEVar25 = pEVar16;
          pEVar16 = pEVar42;
        }
        if ((int)pEVar23 < 0) {
          uVar41 = *(undefined4 *)(puVar35 + -100);
          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;
          pEVar25 = pEVar4;
          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);
          pEVar16 = (Elf32_Ehdr *)
                    ((int)pEVar9 +
                    ((int)&pEVar16->e_ident_magic_num -
                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +
                                   (int)(&pEVar9->e_ident_magic_num +
                                        (int)(&pEVar16->e_ident_magic_num +
                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));
          pcVar51 = *(code **)(puVar35 + -0x88);
          if ((int)pEVar16 < (int)pEVar42) {
            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);
            if (pEVar16 != (Elf32_Ehdr *)0x0) {
              uVar30._0_1_ = pEVar39->e_ident_magic_num;
              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];
              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];
              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];
              if (pwVar8 == (word *)0x0) {
                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);
                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);
                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);
                pEVar4->e_ident_magic_str[2] = (char)uVar30;
              }
              else {
                pEVar38 = pEVar4;
                pbVar14 = &pEVar39->e_ident_class;
                do {
                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);
                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);
                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);
                  pEVar38->e_ident_magic_str[2] = (char)uVar30;
                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);
                  pwVar8 = (word *)((int)pwVar8 + -1);
                  uVar30 = *(undefined4 *)pbVar14;
                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
                  pbVar14 = (byte *)pEVar25;
                } while (pwVar8 != (word *)0x0);
                *(undefined4 *)
                 (&pEVar4->e_ident_magic_num +
                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;
              }
            }
          }
          else {
            uVar41 = *(undefined4 *)(puVar35 + -0x4c);
            pcVar51 = *(code **)(puVar35 + -0x7c);
            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);
            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;
            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);
            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);
            pcVar51 = *(code **)(puVar35 + -0x88);
            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;
            pEVar16 = pEVar4;
            pEVar38 = pEVar39;
            if (pwVar8 == (word *)0x0) {
              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;
              pEVar16 = pEVar42;
            }
            else {
              do {
                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;
                pwVar8 = (word *)((int)pwVar8 + -1);
                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;
                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;
                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;
              } while (pwVar8 != (word *)0x0);
              **(undefined4 **)(puVar35 + -0x80) = pEVar25;
              pEVar16 = pEVar42;
            }
          }
        }
        iVar7 = iVar7 + -1;
        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);
      } while (iVar7 != 0);
      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);
    }
LAB_00030dd0:
    pEVar38 = (Elf32_Ehdr *)0x0;
    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);
    if (pEVar6 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))
      {
        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;
        do {
          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 == (Elf32_Ehdr *)0x0) {
            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);
            piVar37 = *(int **)(puVar35 + -0x54);
            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||
               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          piVar37 = (int *)(pbVar14 + -8);
          pbVar14 = pbVar14 + -4;
        } while (*piVar37 == 0);
      }
      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);
      piVar37 = *(int **)(puVar35 + -0x54);
      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||
         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar44 = *(code **)(pcVar51 + -0x7a84);
        if (*piVar37 < (int)pEVar16) goto LAB_00031474;
LAB_00030e44:
        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);
        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);
        pEVar25 = pEVar23;
        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);
        pcVar51 = *(code **)(puVar35 + -0x88);
        if (iVar7 == 0) {
LAB_000314a0:
          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;
          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));
          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;
          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;
          do {
            uVar41 = *(undefined4 *)pbVar15;
            pbVar15 = pbVar15 + 4;
            *(undefined4 *)pbVar14 = uVar41;
            pbVar14 = pbVar14 + 4;
          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);
          iVar7 = *(int *)(puVar35 + -0x50);
        }
        else {
          if ((int)pEVar16 < (int)pEVar42) {
            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;
            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;
            pEVar25 = *(Elf32_Ehdr **)pbVar14;
            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);
            pEVar38 = pEVar25;
            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)
            {
              pbVar15 = pbVar15 + 4;
              if (pEVar42 == pEVar16) goto LAB_00031130;
              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);
              pbVar14 = pbVar14 + 4;
              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar15 = pEVar25;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar7 = *(int *)(puVar35 + -0x50);
        }
        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);
        iVar50._0_1_ = pEVar38->e_ident_magic_num;
        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];
        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];
        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];
        if (iVar50 == 0) {
          iVar7 = *(int *)(puVar35 + -0x78);
          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);
          do {
            iVar7 = iVar7 + -1;
            if (iVar7 == 0) {
              piVar37 = *(int **)(puVar35 + -0x54);
              goto LAB_00030f08;
            }
            piVar37 = (int *)(pbVar14 + -8);
            pbVar14 = pbVar14 + -4;
          } while (*piVar37 == 0);
          *(int *)(puVar35 + -0x78) = iVar7;
        }
        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {
          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);
          pcVar44 = *(code **)(pcVar51 + -0x7a84);
LAB_00031474:
          pEVar25 = pEVar16;
          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));
          pcVar51 = *(code **)(puVar35 + -0x88);
          goto LAB_00030e44;
        }
        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);
        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;
      }
      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);
      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);
      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;
      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);
      puVar33 = puVar28;
      pEVar27 = pEVar4;
      if (pwVar8 != (word *)0x0) {
        do {
          *puVar33 = pEVar25;
          pwVar8 = (word *)((int)pwVar8 + -1);
          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;
          puVar33 = puVar33 + 1;
          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
        } while (pwVar8 != (word *)0x0);
        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);
      }
      *puVar28 = pEVar25;
    }
    else {
      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);
      iVar36 = (int)pEVar16 * 4;
      iVar34 = *(int *)(puVar35 + -0x88);
      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));
      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;
      pEVar23 = pEVar6;
      if ((int)pEVar42 <= (int)pEVar16) {
        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);
        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);
        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;
        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,
            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));
        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);
        iVar34 = *(int *)(puVar35 + -0x88);
        uVar24._0_1_ = pEVar39->e_ident_magic_num;
        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];
        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];
        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];
        pEVar25 = pEVar4;
        pEVar16 = pEVar39;
        if (pwVar8 == (word *)0x0) {
          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
          pEVar4->e_ident_magic_str[2] = (char)uVar24;
          pEVar16 = pEVar42;
        }
        else {
          do {
            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);
            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);
            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);
            pEVar25->e_ident_magic_str[2] = (char)uVar24;
            pwVar8 = (word *)((int)pwVar8 + -1);
            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;
            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;
            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;
          } while (pwVar8 != (word *)0x0);
          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;
          pEVar16 = pEVar42;
        }
LAB_000312bc:
        pEVar25 = pEVar4;
        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));
        pcVar51 = *(code **)(puVar35 + -0x88);
        goto LAB_00030ddc;
      }
      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);
      if (pEVar16 != (Elf32_Ehdr *)0x0) {
        uVar26._0_1_ = pEVar39->e_ident_magic_num;
        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];
        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];
        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];
        pEVar6 = pEVar4;
        pEVar25 = pEVar39;
        if (pwVar8 != (word *)0x0) {
          do {
            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
            pEVar6->e_ident_magic_str[2] = (char)uVar26;
            pwVar8 = (word *)((int)pwVar8 + -1);
            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;
            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;
            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;
          } while (pwVar8 != (word *)0x0);
          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);
        }
        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);
        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);
        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);
        pEVar6->e_ident_magic_str[2] = (char)uVar26;
        goto LAB_000312bc;
      }
      pEVar25 = pEVar4;
      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);
      pcVar51 = *(code **)(puVar35 + -0x88);
      pEVar6 = pEVar27;
LAB_00030f04:
      piVar37 = *(int **)(puVar35 + -0x54);
LAB_00030f08:
      if (*piVar37 < 0) {
        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);
        pEVar25 = (Elf32_Ehdr *)0x0;
        (**(code **)(pcVar51 + -0x7a84))(pEVar23);
        pcVar51 = *(code **)(puVar35 + -0x88);
        pEVar23->e_ident_class = 0;
        pEVar23->e_ident_data = 0;
        pEVar23->e_ident_version = 0;
        pEVar23->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    piVar37 = *(int **)(puVar35 + -0x40);
    piVar12 = *(int **)(puVar35 + -0x58);
    if (piVar37 != (int *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar51 = *(code **)(pcVar44 + 0x66c10);
    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;
    *(undefined4 *)(puVar35 + -0x34) = 1;
    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;
    (*pcVar51)();
    pcVar51 = *(code **)(puVar35 + -0x88);
LAB_00030c64:
    piVar12 = *(int **)(puVar35 + -0x58);
  }
  if (*(int *)(puVar35 + -0x2c) == *piVar12) {
    return;
  }
  pcVar51 = *(code **)(pcVar51 + -0x7b70);
  uVar41 = 0x3153c;
  (*pcVar51)();
  pcVar44 = pcVar51 + 0x6db00;
  puVar48 = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6;
  piVar12 = *(int **)(pcVar51 + 0x66000);
  *(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0;
  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38;
  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23;
  *(undefined4 *)(puVar49 + -4) = uVar41;
  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9;
  *(code **)(puVar49 + -0x28) = pcVar44;
  *(int *)(puVar49 + -0x1c) = *piVar12;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar25) {
    if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {
      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();
      pcVar44 = *(code **)(puVar49 + -0x28);
    }
    else {
      pEVar9 = (Elf32_Ehdr *)piVar37[2];
    }
    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);
    pcVar44 = *(code **)(puVar49 + -0x28);
    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);
    uVar5 = 8;
    do {
      uVar54 = uVar5;
      pEVar38 = (Elf32_Ehdr *)*puVar33;
      puVar33 = puVar33 + -1;
      uVar5 = uVar54 - 1;
    } while (pEVar38 < pEVar25);
    if (uVar54 == 0) {
      trap(7);
    }
    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;
    *(undefined4 *)(puVar49 + -0x20) = 0;
    if (uVar5 < 0x7f01) {
      iVar7 = -(uVar5 + 7 & 0xfffffff8);
      puVar48 = puVar49 + iVar7 + -0x38;
      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);
    }
    else {
      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);
      pcVar44 = *(code **)(puVar49 + -0x28);
    }
    iVar36 = 0;
    uVar55 = 1;
    iVar7 = 0;
    uVar5 = 0;
    uVar54 = 6;
    do {
      uVar53 = uVar5 + 1;
      uVar17 = uVar54;
      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {
        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;
        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {
          uVar17 = uVar54 * uVar17;
        }
        else {
          iVar34 = iVar7 * 4;
          iVar7 = iVar7 + 1;
          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;
        }
      }
      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);
      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;
      iVar36 = iVar36 + (uVar55 & 1);
      uVar5 = uVar53;
      uVar54 = uVar17;
    } while (bVar1);
    if (iVar7 == 0) {
      *(uint *)piVar37[2] = uVar17;
      piVar37[1] = 1;
    }
    else {
      pcVar51 = *(code **)(pcVar44 + -0x7dbc);
      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;
      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);
      pcVar44 = *(code **)(puVar49 + -0x28);
    }
    piVar40 = *(int **)(puVar49 + -0x20);
    if (piVar40 != (int *)0x0) {
      (**(code **)(pcVar44 + -0x7a2c))();
      pcVar44 = *(code **)(puVar49 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);
    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;
    piVar37[1] = 1;
    piVar40 = piVar37;
    pEVar38 = pEVar25;
    pEVar25 = pEVar27;
    puVar48 = puVar49 + -0x38;
  }
  if (*(int *)(puVar49 + -0x1c) == *piVar12) {
    return;
  }
  pcVar51 = *(code **)(pcVar44 + -0x7b70);
  pcVar52 = __gmpz_probab_prime_p;
  (*pcVar51)();
  pcVar44 = *(code **)(pcVar51 + 0x659a8);
  *(int **)(puVar48 + -0x24) = piVar37;
  *(int **)(puVar48 + -0x20) = piVar12;
  piVar37 = *(int **)(pcVar51 + 0x65da0);
  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39;
  *(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9;
  pEVar27 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42;
  *(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25;
  *(code **)(puVar48 + -4) = pcVar52;
  *(undefined1 **)(puVar48 + -8) = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4;
  *(int *)(puVar48 + -0x2c) = *piVar37;
  iVar7 = (*pcVar44)();
  puVar19 = (uint *)piVar40[2];
  iVar36 = *(int *)(puVar48 + -0x90);
  pEVar9 = (Elf32_Ehdr *)piVar40[1];
  uVar5 = *puVar19;
  if (iVar7 < 1) {
    pEVar27 = (Elf32_Ehdr *)0xf4240;
    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);
    iVar36 = *(int *)(puVar48 + -0x90);
    if (iVar7 < 1) {
      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {
        uVar55 = 3;
        while (uVar54 != 0) {
          if (uVar55 == 0) {
            trap(7);
          }
          uVar54 = uVar5 % uVar55;
          if (uVar5 / uVar55 < uVar55) break;
          uVar55 = uVar55 + 2;
        }
      }
      goto LAB_00031824;
    }
    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;
    *(uint **)(puVar48 + -0x6c) = puVar19;
    piVar40 = (int *)(puVar48 + -0x74);
    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;
  }
  if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)) {
    pEVar27 = pEVar9;
    if ((int)pEVar9 < 10) {
      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);
      iVar36 = *(int *)(puVar48 + -0x90);
    }
    else {
      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);
      iVar36 = *(int *)(puVar48 + -0x90);
    }
    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&
          (uVar54 != (uVar54 / 7) * 7)) &&
         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&
        ((uVar54 != (uVar54 / 0x11) * 0x11 &&
         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&
       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {
      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);
      iVar7 = *(int *)(puVar48 + -0x90);
      if (0x1f < uVar54) {
        iVar34 = 0;
        puVar35 = puVar48 + -0x68;
        uVar55 = 0x1f;
        iVar36 = 0;
LAB_00031a28:
        uVar17 = 3;
        do {
          if (uVar17 == 0) {
            trap(7);
          }
          uVar53 = uVar55 % uVar17;
          if (uVar55 / uVar17 < uVar17) {
            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {
              iVar50 = iVar36 + 1;
              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar48 + -0x7c) = puVar35;
            *(int *)(puVar48 + -0x80) = iVar34;
            *(uint *)(puVar48 + -0x84) = uVar54;
            if ((int)pEVar9 < 10) {
              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);
              iVar7 = *(int *)(puVar48 + -0x90);
              uVar54 = *(uint *)(puVar48 + -0x84);
              iVar34 = *(int *)(puVar48 + -0x80);
              puVar35 = *(undefined1 **)(puVar48 + -0x7c);
            }
            else {
              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);
              iVar7 = *(int *)(puVar48 + -0x90);
              puVar35 = *(undefined1 **)(puVar48 + -0x7c);
              iVar34 = *(int *)(puVar48 + -0x80);
              uVar54 = *(uint *)(puVar48 + -0x84);
            }
            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar17 = uVar17 + 2;
          iVar50 = iVar36;
        } while (uVar53 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      (**(code **)(iVar7 + -0x7d48))(piVar40);
      iVar36 = *(int *)(puVar48 + -0x90);
      pEVar27 = pEVar38;
    }
  }
LAB_00031824:
  iVar7 = *(int *)(puVar48 + -0x2c);
  if (iVar7 == *piVar37) {
    return;
  }
LAB_00031c58:
  pcVar51 = *(code **)(iVar36 + -0x7b70);
  uVar41 = 0x31c64;
  (*pcVar51)();
  pcVar44 = pcVar51 + 0x6d3d0;
  pcVar18 = *(char **)(pcVar51 + 0x65518);
  *(int **)(puVar48 + -0xa8) = piVar37;
  *(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9;
  *(code **)(puVar48 + -0xb8) = pcVar44;
  *(undefined4 *)(puVar48 + -0xa4) = uVar41;
  if (*pcVar18 == '\0') {
    pcVar44 = *(code **)(pcVar51 + 0x65990);
    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);
    *pcVar18 = '\x01';
    (*pcVar44)(uVar41);
    pcVar44 = *(code **)(puVar48 + -0xb8);
  }
  pEVar9 = pEVar27;
  if ((int)pEVar27 < 0) {
    pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;
  }
  (**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5);
  if ((int)pEVar27 < 0) {
    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);
  }
  return;
joined_r0x00030154:
  if (iVar7 != 0) goto LAB_00030180;
  pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);
  if (pEVar4 == (Elf32_Ehdr *)0x0) goto LAB_00030180;
  iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum;
  iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize;
  pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum;
  goto joined_r0x00030154;
LAB_00030180:
  uVar5._0_1_ = in_t3->e_ident_magic_num;
  uVar5._1_1_ = in_t3->e_ident_magic_str[0];
  uVar5._2_1_ = in_t3->e_ident_magic_str[1];
  uVar5._3_1_ = in_t3->e_ident_magic_str[2];
  if (((uVar5 & 1) == 0) || (-1 < b->_mp_size)) {
    if (r->_mp_alloc < (int)pEVar4) {
LAB_00030268:
      pEVar25 = pEVar4;
      (*(code *)PTR___gmpz_realloc_000975bc)(r);
    }
    r->_mp_size = (int)pEVar4;
    unaff_s0 = pEVar4;
    if (pEVar4 != (Elf32_Ehdr *)0x0) {
LAB_000301b4:
      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);
      pEVar27 = (Elf32_Ehdr *)r->_mp_d;
      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;
      pEVar23 = pEVar27;
      pEVar6 = unaff_s5;
      if (pwVar8 != (word *)0x0) {
        do {
          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;
          pwVar8 = (word *)((int)pwVar8 + -1);
          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;
          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;
          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;
        } while (pwVar8 != (word *)0x0);
        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);
        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))
        ;
      }
      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;
      unaff_s0 = pEVar4;
    }
  }
  else {
    unaff_s0 = pEVar4;
    if (pEVar4 != (Elf32_Ehdr *)0x0) {
      b = (mpz_srcptr)m->_mp_d;
      pEVar25 = (Elf32_Ehdr *)b;
      pEVar27 = unaff_s5;
      pEVar38 = pEVar4;
      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);
      if (iVar7 == 0) {
LAB_000303e0:
        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;
        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;
        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;
        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;
        do {
          uVar41 = *(undefined4 *)pbVar15;
          pbVar15 = pbVar15 + 4;
          *(undefined4 *)pbVar14 = uVar41;
          pbVar14 = pbVar14 + 4;
        } while (pbVar15 != in_t2);
        iVar36 = *(int *)pwVar8;
        unaff_s0 = pEVar4;
      }
      else {
        if ((int)pEVar4 < (int)pEVar9) {
          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;
          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;
          iVar7 = *(int *)pbVar14;
          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);
          *(Elf32_Ehdr **)pbVar15 = pEVar25;
          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {
            pbVar15 = pbVar15 + 4;
            if (pEVar9 == pEVar4) goto LAB_00030390;
            iVar7 = *(int *)(pbVar14 + 4);
            pbVar14 = pbVar14 + 4;
            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);
            *(Elf32_Ehdr **)pbVar15 = pEVar25;
          }
          goto LAB_000303e0;
        }
LAB_00030390:
        iVar36 = *(int *)pwVar8;
        unaff_s0 = pEVar4;
      }
      while (pEVar4 = pEVar16, iVar36 == 0) {
        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;
        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;
        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;
        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;
      }
      pEVar16 = pEVar4;
      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;
      r->_mp_size = (int)pEVar4;
      goto LAB_000301b4;
    }
LAB_00030250:
    if (r->_mp_alloc < 0) {
      pEVar25 = (Elf32_Ehdr *)0x0;
      (*(code *)PTR___gmpz_realloc_000975bc)(r);
      r->_mp_size = 0;
    }
    else {
      r->_mp_size = 0;
    }
  }
  pEVar4 = (Elf32_Ehdr *)__tmp_marker;
  e = (mpz_srcptr)pEVar27;
  puVar48 = puVar45;
  if (__tmp_marker != (tmp_reentrant_t *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
    e = (mpz_srcptr)pEVar27;
  }
  goto LAB_00030200;
LAB_00031bcc:
  iVar36 = iVar36 + -1;
  if (iVar36 == -1) goto code_r0x00031bd8;
  uVar17 = *puVar22;
  if (uVar17 == 0) {
    trap(7);
  }
  puVar22 = puVar22 + -1;
  if (uVar5 % uVar17 == 0) {
    pEVar27 = pEVar9;
    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);
    iVar36 = *(int *)(puVar48 + -0x90);
    if (iVar7 == 0) goto LAB_00031824;
    pEVar27 = (Elf32_Ehdr *)0x81;
    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar50 = 1;
  iVar36 = 0;
  uVar5 = uVar55;
LAB_00031b4c:
  *(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;
LAB_00031a4c:
  uVar17 = uVar55 + 2;
  iVar34 = (uint)(uVar17 < uVar55) + iVar34;
  uVar55 = uVar17;
  iVar36 = iVar50;
  if (uVar54 <= uVar17) goto LAB_00031a64;
  goto LAB_00031a28;
}



/* WARNING: Type propagation algorithm not settling */

int __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)

{
  bool bVar1;
  longlong lVar2;
  Elf32_Ehdr *pEVar3;
  undefined *puVar4;
  Elf32_Ehdr *pEVar5;
  uint uVar6;
  Elf32_Ehdr *pEVar7;
  int iVar8;
  undefined1 *puVar9;
  Elf32_Ehdr *pEVar10;
  undefined4 uVar11;
  int *piVar12;
  int iVar13;
  byte *pbVar14;
  byte *pbVar15;
  Elf32_Ehdr *pEVar16;
  uint uVar17;
  char *pcVar18;
  uint *puVar19;
  undefined1 *puVar20;
  Elf32_Ehdr *pEVar21;
  undefined4 uVar22;
  uint *puVar23;
  Elf32_Ehdr *pEVar24;
  undefined4 uVar25;
  int iVar26;
  Elf32_Ehdr *pEVar27;
  Elf32_Ehdr *pEVar28;
  undefined4 uVar29;
  Elf32_Ehdr *pEVar30;
  undefined4 *puVar31;
  undefined4 uVar32;
  undefined4 uVar33;
  Elf32_Ehdr *pEVar34;
  undefined4 *puVar35;
  Elf32_Ehdr *in_t1;
  char *in_t2;
  Elf32_Ehdr *in_t3;
  undefined1 *puVar36;
  Elf32_Ehdr *unaff_s0;
  int iVar37;
  word *pwVar38;
  int *piVar39;
  Elf32_Ehdr *pEVar40;
  Elf32_Ehdr *pEVar41;
  Elf32_Ehdr *pEVar42;
  int *piVar43;
  Elf32_Ehdr *unaff_s5;
  undefined4 uVar44;
  undefined *puVar45;
  code *pcVar46;
  undefined1 *puVar47;
  undefined1 *puVar48;
  undefined1 *puVar49;
  int iVar50;
  code *pcVar51;
  code *pcVar52;
  uint uVar53;
  uint uVar54;
  uint uVar55;
  undefined8 uVar56;
  undefined1 auStack_68 [32];
  Elf32_Ehdr *local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_00097540;
  puVar9 = auStack_68;
  puVar47 = auStack_68;
  puVar49 = auStack_68;
  puVar36 = auStack_68;
  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;
  if (-1 < (int)pEVar5) {
    pEVar10 = pEVar5;
  }
  pEVar40 = param_3;
  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;
  do {
    do {
      (*(code *)PTR___gmp_divide_by_zero_000975dc)();
LAB_00030070:
      puVar19 = *(uint **)(param_4 + 8);
      uVar6 = *puVar19;
      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);
    } while (pEVar5 == (Elf32_Ehdr *)0x0);
    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;
    pEVar16 = pEVar10;
    if (0 < (int)pEVar27) {
      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;
      pEVar30 = pEVar7;
      if ((int)pEVar7 < 0) {
        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;
      }
      if (pEVar7 == (Elf32_Ehdr *)0x0) {
        param_1[1] = 0;
        puVar9 = auStack_68;
        goto LAB_00030200;
      }
      iVar37 = (int)pEVar27 << 5;
      local_30 = (Elf32_Ehdr *)0x0;
      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);
      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;
      if (uVar6 < 0x7f01) {
        iVar8 = -(uVar6 + 7 & 0xfffffff8);
        puVar47 = auStack_68 + iVar8;
        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);
      }
      else {
        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
      }
      in_t2 = (char *)((int)pEVar10 * 4);
      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;
      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;
      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);
      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;
      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;
      *(uint **)(puVar47 + 0x14) = puVar19;
      *(int *)(puVar47 + 0x10) = iVar37;
      pEVar40 = in_t3;
      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);
      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);
      iVar8 = *(int *)pcVar18;
      pEVar7 = in_t1;
      pEVar5 = pEVar10;
      goto joined_r0x00030154;
    }
  } while (pEVar27 != (Elf32_Ehdr *)0x0);
  if (pEVar10 == (Elf32_Ehdr *)0x1) {
    uVar6 = (uint)(uVar6 != 1);
  }
  else {
    uVar6 = 1;
  }
  param_1[1] = uVar6;
  *(undefined4 *)param_1[2] = 1;
LAB_00030200:
  iVar8 = *(int *)puVar4;
  if (local_2c == iVar8) {
    return iVar8;
  }
  pcVar51 = FUN_00030430;
  puVar45 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  *(undefined **)(puVar9 + -0x24) = puVar4;
  piVar39 = *(int **)(puVar45 + 0x67110);
  puVar35 = *(undefined4 **)(puVar9 + 0x10);
  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;
  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;
  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;
  *(int *)(puVar9 + -0x1c) = param_4;
  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;
  *(code **)(puVar9 + -4) = pcVar51;
  *(undefined1 **)(puVar9 + -8) = auStack_68;
  *(int **)(puVar9 + -0xc) = param_1;
  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;
  *(undefined4 *)(puVar9 + -0x30) = 0;
  uVar44 = *(undefined4 *)(puVar9 + 0x14);
  *(int *)(puVar9 + -0x2c) = *piVar39;
  pEVar16 = pEVar5;
  pEVar30 = pEVar27;
  if (pEVar40 == (Elf32_Ehdr *)0x1) {
    pEVar7 = (Elf32_Ehdr *)0x0;
    pcVar51 = *(code **)(puVar45 + 0x66e78);
    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;
    uVar11 = (*pcVar51)(uVar44);
    iVar8 = *(int *)(puVar9 + -0x38);
    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);
    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);
    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);
    pEVar5->e_ident_magic_str[2] = (char)uVar11;
LAB_0003056c:
    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);
    pcVar51 = *(code **)(iVar8 + -0x7a2c);
    pEVar40 = unaff_s0;
    puVar49 = puVar36;
    if (pEVar24 != (Elf32_Ehdr *)0x0) {
LAB_00030534:
      (*pcVar51)();
      iVar8 = *(int *)(puVar9 + -0x38);
    }
  }
  else {
    pEVar7 = pEVar5;
    unaff_s0 = pEVar40;
    if (pEVar40 == (Elf32_Ehdr *)0x2) {
      uVar22 = *(undefined4 *)param_3;
      uVar11 = *(undefined4 *)&param_3->e_ident_class;
      pcVar51 = *(code **)(puVar45 + 0x66f54);
      *(undefined4 *)(puVar9 + -0x40) = *puVar35;
      *(undefined4 *)(puVar9 + -0x44) = uVar22;
      *(undefined4 *)(puVar9 + -0x48) = uVar11;
      (*pcVar51)(uVar44);
      iVar8 = *(int *)(puVar9 + -0x38);
      puVar36 = auStack_68;
      goto LAB_0003056c;
    }
    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {
      uVar11 = *puVar35;
      pcVar51 = *(code **)(puVar45 + 0x6700c);
      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;
      *(undefined4 *)(puVar9 + -0x44) = uVar11;
      pEVar16 = pEVar27;
      pEVar30 = param_3;
      (*pcVar51)(uVar44);
      iVar8 = *(int *)(puVar9 + -0x38);
      puVar36 = auStack_68;
      goto LAB_0003056c;
    }
    if ((int)pEVar40 < 200) {
LAB_00030504:
      pcVar51 = *(code **)(puVar45 + 0x6709c);
    }
    else {
      pcVar51 = *(code **)(puVar45 + 0x6709c);
      puVar49 = auStack_68;
      if (3999 < (int)pEVar27) {
        puVar49 = (undefined1 *)((int)pEVar40 * 4);
        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +
            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=
            (double)(int)pEVar40 * (double)(int)pEVar27) {
          param_1 = (int *)(puVar9 + -0x30);
          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);
          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);
          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);
          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;
          *(undefined4 *)(puVar9 + -0x40) = uVar11;
          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;
          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);
          pEVar7 = pEVar10;
          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);
          iVar8 = *(int *)(puVar9 + -0x38);
          uVar11._0_1_ = pEVar10->e_ident_magic_num;
          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];
          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];
          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];
          pEVar24 = pEVar5;
          pEVar42 = pEVar10;
          do {
            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);
            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);
            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);
            pEVar24->e_ident_magic_str[2] = (char)uVar11;
            pwVar38 = (word *)((int)pwVar38 + -1);
            uVar11._0_1_ = pEVar42->e_ident_class;
            uVar11._1_1_ = pEVar42->e_ident_data;
            uVar11._2_1_ = pEVar42->e_ident_version;
            uVar11._3_1_ = pEVar42->e_ident_osabi;
            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;
            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;
          } while (pwVar38 != (word *)0x0);
          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);
          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);
          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;
          unaff_s0 = (Elf32_Ehdr *)0x0;
          puVar36 = puVar49;
          goto LAB_0003056c;
        }
        goto LAB_00030504;
      }
    }
    *(undefined4 **)(puVar9 + -0x44) = puVar35;
    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;
    pEVar16 = pEVar27;
    pEVar30 = param_3;
    (*pcVar51)(uVar44);
    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);
    iVar8 = *(int *)(puVar9 + -0x38);
    if (pEVar24 != (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(iVar8 + -0x7a2c);
      goto LAB_00030534;
    }
  }
  if (*(int *)(puVar9 + -0x2c) == *piVar39) {
    return *piVar39;
  }
  pcVar51 = *(code **)(iVar8 + -0x7b70);
  pcVar52 = FUN_000306c8;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6e978;
  puVar36 = puVar9 + -0xb0;
  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;
  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;
  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);
  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);
  *(undefined1 **)(puVar9 + -0x60) = puVar49;
  *(int **)(puVar9 + -100) = param_1;
  *(undefined4 *)(puVar9 + -0x6c) = uVar44;
  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;
  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;
  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;
  *(code **)(puVar9 + -0x5c) = pcVar52;
  *(int **)(puVar9 + -0x7c) = piVar39;
  *(code **)(puVar9 + -0x98) = pcVar46;
  *(undefined4 *)(puVar9 + -0x88) = 0;
  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);
  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);
  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;
  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {
    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);
    puVar36 = puVar9 + iVar8 + -0xb0;
    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);
  }
  else {
    pcVar51 = *(code **)(pcVar51 + 0x66c28);
    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;
    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);
    pcVar46 = *(code **)(puVar9 + -0x98);
    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);
  }
  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;
  pcVar51 = *(code **)(pcVar46 + -0x7d50);
  if (uVar6 < 0x7f01) {
    iVar8 = -(uVar6 + 7 & 0xfffffff8);
    puVar49 = puVar36 + iVar8 + 0x18;
    puVar36 = puVar36 + iVar8;
  }
  else {
    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;
    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);
    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);
  }
  if (pEVar16 != (Elf32_Ehdr *)0x0) {
    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
    uVar44._0_1_ = pEVar7->e_ident_magic_num;
    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];
    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];
    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];
    pEVar41 = pEVar27;
    pEVar28 = pEVar7;
    if (puVar20 == (undefined1 *)0x0) {
      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
      pEVar27->e_ident_magic_str[2] = (char)uVar44;
      pEVar10 = pEVar27;
    }
    else {
      do {
        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
        pEVar41->e_ident_magic_str[2] = (char)uVar44;
        puVar20 = puVar20 + -1;
        uVar44._0_1_ = pEVar28->e_ident_class;
        uVar44._1_1_ = pEVar28->e_ident_data;
        uVar44._2_1_ = pEVar28->e_ident_version;
        uVar44._3_1_ = pEVar28->e_ident_osabi;
        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;
        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
      } while (puVar20 != (undefined1 *)0x0);
      pEVar10 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str
                );
      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
      pEVar10->e_ident_magic_str[2] = (char)uVar44;
    }
  }
  *(undefined1 **)(puVar36 + 0x14) = puVar49;
  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;
  pEVar28 = pEVar16;
  pEVar34 = pEVar40;
  FUN_00030430(pEVar27);
  iVar8 = *(int *)(puVar9 + -0x98);
  pEVar41 = pEVar40;
  if (pEVar40 != (Elf32_Ehdr *)0x0) {
    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);
    pEVar28 = *(Elf32_Ehdr **)pEVar27;
    pEVar21 = pEVar24;
    pEVar3 = pEVar27;
    if (puVar49 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar21 = pEVar28;
        puVar49 = puVar49 + -1;
        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;
        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;
        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;
      } while (puVar49 != (undefined1 *)0x0);
      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);
      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar24 = pEVar28;
  }
  piVar39 = *(int **)(puVar9 + -0x88);
  if (piVar39 != (int *)0x0) {
    (**(code **)(iVar8 + -0x7a2c))();
    iVar8 = *(int *)(puVar9 + -0x98);
  }
  iVar50._0_1_ = pEVar42->e_ident_magic_num;
  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];
  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];
  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];
  if (*(int *)(puVar9 + -0x84) == iVar50) {
    return iVar50;
  }
  pcVar46 = *(code **)(iVar8 + -0x7b70);
  pcVar52 = __gmpz_powm_ui;
  (*pcVar46)();
  pcVar51 = pcVar46 + 0x6e770;
  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);
  puVar20 = puVar36 + -0xa0;
  puVar49 = puVar36 + -0xa0;
  puVar48 = puVar36 + -0xa0;
  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;
  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;
  *(code **)(puVar36 + -4) = pcVar52;
  *(undefined4 **)(puVar36 + -0x58) = puVar35;
  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;
  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;
  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;
  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;
  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;
  *(code **)(puVar36 + -0x88) = pcVar51;
  *(int **)(puVar36 + -0x54) = piVar39;
  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;
  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;
  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;
  pEVar40 = pEVar30;
  if (pEVar30 < (Elf32_Ehdr *)0x14) {
    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;
    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;
    pEVar10 = pEVar7;
    if ((int)pEVar7 < 0) {
      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;
    }
    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;
    if (pEVar7 == (Elf32_Ehdr *)0x0) {
      pEVar7 = pEVar30;
      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();
LAB_00031228:
      uVar6 = (uint)uVar56;
      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);
      puVar49 = puVar20;
    }
    else {
      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);
      if (pEVar30 == (Elf32_Ehdr *)0x0) {
        uVar6 = 1;
        if (pEVar10 == (Elf32_Ehdr *)0x1) {
          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);
        }
        piVar39 = *(int **)(puVar36 + -0x54);
        piVar39[1] = uVar6;
        *(undefined4 *)piVar39[2] = 1;
        puVar49 = puVar36 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar36 + -0x40) = 0;
      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;
      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);
      if (pEVar28 < &Elf32_Ehdr_00010000) {
        iVar8 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar28) {
          iVar8 = 0x18;
        }
        iVar37 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar28) {
          iVar37 = 1;
        }
      }
      else {
        iVar8 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar28) {
          iVar8 = 8;
        }
        iVar37 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {
          iVar37 = 0x11;
        }
      }
      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);
      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];
      *(int *)(puVar36 + -0x6c) = iVar8;
      puVar20 = puVar36 + -0xa0;
      if (iVar8 != 0) {
        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {
          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);
          puVar48 = puVar36 + iVar8 + -0xa0;
          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);
        }
        else {
          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);
          pcVar51 = *(code **)(puVar36 + -0x88);
        }
        (**(code **)(pcVar51 + -0x7ad4))
                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)
                  );
        pcVar51 = *(code **)(puVar36 + -0x88);
        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;
        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);
        puVar20 = puVar48;
      }
      if (pEVar10 == (Elf32_Ehdr *)0x1) {
        pEVar34 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);
      }
      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);
      if (pEVar7 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;
      in_t2 = (char *)((uint)pEVar28 & 0xffff);
      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);
      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);
      uVar6 = uVar54;
      in_t1 = pEVar34;
      puVar49 = puVar20;
      if (pEVar42 < in_t3) {
        pEVar42 = (Elf32_Ehdr *)
                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));
        uVar6 = uVar54 - 1;
        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))
        goto LAB_00031228;
      }
    }
    if (pEVar7 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;
    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);
    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));
    uVar54 = uVar55;
    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&
       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))
       )) {
      uVar54 = uVar55 - 1;
    }
    uVar54 = uVar6 << 0x10 | uVar54;
    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);
    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    if (pEVar7 < pEVar34) {
      uVar6 = pEVar7 < pEVar28 ^ 1;
      pEVar42 = pEVar28;
      if (uVar6 == 0) {
        pEVar42 = (Elf32_Ehdr *)0x0;
      }
      uVar54 = (uVar54 - 1) - uVar6;
      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));
      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    }
    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));
    uVar6 = uVar54;
    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&
       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||
        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {
      uVar6 = uVar54 - 2;
    }
    *(uint *)(puVar36 + -0x44) = uVar6;
    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);
    pEVar41 = pEVar7;
    if ((int)pEVar7 < 0) {
      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;
    }
    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);
    if ((int)pEVar41 <= (int)pEVar10) {
      if (pEVar7 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;
        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;
        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      piVar39 = *(int **)(puVar36 + -0x40);
      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;
      if (piVar39 == (int *)0x0) goto LAB_00030c64;
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
LAB_00030c08:
      (*pcVar51)();
      pcVar51 = *(code **)(puVar36 + -0x88);
      goto LAB_00030c64;
    }
    uVar6 = *(int *)(puVar36 + -0x50) + 4;
    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);
    *(uint *)(puVar36 + -0x70) = uVar6;
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7d50);
      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;
      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));
      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);
      *(undefined4 *)(puVar36 + -100) = uVar44;
    }
    else {
      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;
      puVar49 = puVar49 + iVar8;
    }
    iVar8 = *(int *)(puVar36 + -100);
    uVar44 = *(undefined4 *)(puVar36 + -0x4c);
    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;
    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;
    pEVar28 = pEVar42;
    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);
    pcVar51 = *(code **)(puVar36 + -0x88);
    pEVar41 = pEVar10;
    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {
      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);
      do {
        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);
        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar39 = (int *)(iVar8 + -8);
        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);
        iVar8 = iVar8 + -4;
      } while (*piVar39 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar10 * 8 + 4U < 0x7f01) {
      iVar8 = -((int)pEVar10 * 8 + 8);
      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);
      puVar49 = puVar49 + iVar8;
    }
    else {
      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);
      pcVar51 = *(code **)(puVar36 + -0x88);
    }
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
      pEVar5 = (Elf32_Ehdr *)
               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));
      pcVar51 = *(code **)(puVar36 + -0x88);
    }
    else {
      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {
      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;
      puVar49 = puVar49 + iVar8;
    }
    else {
      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);
      pcVar51 = *(code **)(puVar36 + -0x88);
      *(undefined4 *)(puVar36 + -0x74) = uVar44;
    }
    puVar35 = *(undefined4 **)(puVar36 + -100);
    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);
    pEVar28 = (Elf32_Ehdr *)*puVar35;
    pEVar40 = pEVar5;
    puVar9 = puVar20;
    if (puVar20 != (undefined1 *)0x0) {
      do {
        puVar35 = puVar35 + 1;
        *(Elf32_Ehdr **)pEVar40 = pEVar28;
        puVar9 = puVar9 + -1;
        pEVar28 = (Elf32_Ehdr *)*puVar35;
        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
      } while (puVar9 != (undefined1 *)0x0);
      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar40 = pEVar28;
    pEVar24 = (Elf32_Ehdr *)
              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);
    iVar8 = 0x1f - (int)pEVar24;
    pEVar16 = pEVar41;
    if (iVar8 == 0) {
      if (pEVar10 == pEVar41) {
        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);
        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;
        do {
          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);
          puVar20 = puVar20 + -1;
          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {
            pcVar46 = *(code **)(pcVar51 + -0x7b2c);
            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;
            goto LAB_00030dd0;
          }
          pbVar14 = pbVar14 + -4;
          iVar8 = iVar8 + -4;
        } while (puVar20 != (undefined1 *)0xffffffff);
        pcVar46 = *(code **)(pcVar51 + -0x7b2c);
LAB_00031264:
        pEVar28 = pEVar5;
        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);
        pcVar51 = *(code **)(puVar36 + -0x88);
      }
    }
    else {
      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;
      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);
      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;
      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;
      do {
        pEVar28 = pEVar5;
        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);
        pEVar16 = (Elf32_Ehdr *)
                  ((int)pEVar16 * 2 -
                  (uint)(*(int *)(pEVar42->e_ident_magic_str +
                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));
        pcVar51 = *(code **)(puVar36 + -0x88);
        if ((int)pEVar16 < (int)pEVar10) {
          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 != (Elf32_Ehdr *)0x0) {
            uVar32._0_1_ = pEVar42->e_ident_magic_num;
            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];
            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];
            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];
            pEVar40 = pEVar5;
            if (puVar9 != (undefined1 *)0x0) {
              pbVar14 = &pEVar42->e_ident_class;
              do {
                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);
                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);
                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);
                pEVar40->e_ident_magic_str[2] = (char)uVar32;
                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);
                puVar9 = puVar9 + -1;
                uVar32 = *(undefined4 *)pbVar14;
                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
                pbVar14 = (byte *)pEVar28;
              } while (puVar9 != (undefined1 *)0x0);
              pEVar40 = (Elf32_Ehdr *)
                        (pEVar5->e_ident_magic_str +
                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);
            }
            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);
            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);
            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);
            pEVar40->e_ident_magic_str[2] = (char)uVar32;
          }
          pcVar46 = *(code **)(pcVar51 + -0x7d8c);
        }
        else {
          uVar44 = *(undefined4 *)(puVar36 + -0x4c);
          pcVar51 = *(code **)(puVar36 + -0x7c);
          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);
          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
          pcVar51 = *(code **)(puVar36 + -0x88);
          uVar22._0_1_ = pEVar42->e_ident_magic_num;
          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];
          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];
          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];
          if (puVar9 == (undefined1 *)0x0) {
            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
            pEVar5->e_ident_magic_str[2] = (char)uVar22;
          }
          else {
            pEVar40 = pEVar5;
            pbVar14 = &pEVar42->e_ident_class;
            do {
              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
              pEVar40->e_ident_magic_str[2] = (char)uVar22;
              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);
              puVar9 = puVar9 + -1;
              uVar22 = *(undefined4 *)pbVar14;
              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
              pbVar14 = (byte *)pEVar16;
            } while (puVar9 != (undefined1 *)0x0);
            **(undefined4 **)(puVar36 + -0x80) = uVar22;
          }
          pcVar46 = *(code **)(pcVar51 + -0x7d8c);
          pEVar28 = pEVar16;
          pEVar16 = pEVar10;
        }
        if ((int)pEVar24 < 0) {
          uVar44 = *(undefined4 *)(puVar36 + -100);
          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;
          pEVar28 = pEVar5;
          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);
          pEVar16 = (Elf32_Ehdr *)
                    (pEVar16->e_ident_magic_str +
                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +
                                          (int)pEVar41->e_ident_magic_str * 4 +
                                          *(int *)(puVar36 + -0x60) * 4 +
                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +
                    (int)(pEVar41->e_ident_magic_str + -1));
          pcVar51 = *(code **)(puVar36 + -0x88);
          if ((int)pEVar16 < (int)pEVar10) {
            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
            if (pEVar16 != (Elf32_Ehdr *)0x0) {
              uVar33._0_1_ = pEVar42->e_ident_magic_num;
              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];
              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];
              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];
              if (puVar9 == (undefined1 *)0x0) {
                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);
                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);
                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);
                pEVar5->e_ident_magic_str[2] = (char)uVar33;
              }
              else {
                pEVar40 = pEVar5;
                pbVar14 = &pEVar42->e_ident_class;
                do {
                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);
                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);
                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);
                  pEVar40->e_ident_magic_str[2] = (char)uVar33;
                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);
                  puVar9 = puVar9 + -1;
                  uVar33 = *(undefined4 *)pbVar14;
                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
                  pbVar14 = (byte *)pEVar28;
                } while (puVar9 != (undefined1 *)0x0);
                *(undefined4 *)
                 (pEVar5->e_ident_magic_str +
                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;
              }
            }
          }
          else {
            uVar44 = *(undefined4 *)(puVar36 + -0x4c);
            pcVar51 = *(code **)(puVar36 + -0x7c);
            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);
            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
            pcVar51 = *(code **)(puVar36 + -0x88);
            pEVar28 = *(Elf32_Ehdr **)pEVar42;
            pEVar27 = pEVar5;
            pEVar40 = pEVar42;
            if (puVar9 == (undefined1 *)0x0) {
              *(Elf32_Ehdr **)pEVar5 = pEVar28;
              pEVar16 = pEVar10;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar27 = pEVar28;
                puVar9 = puVar9 + -1;
                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
              } while (puVar9 != (undefined1 *)0x0);
              **(undefined4 **)(puVar36 + -0x80) = pEVar28;
              pEVar16 = pEVar10;
            }
          }
        }
        iVar8 = iVar8 + -1;
        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);
      } while (iVar8 != 0);
      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);
    }
LAB_00030dd0:
    pEVar27 = (Elf32_Ehdr *)0x0;
    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);
    if (pEVar40 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < (int)pEVar16) &&
         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {
        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
        do {
          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 == (Elf32_Ehdr *)0x0) {
            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
            piVar39 = *(int **)(puVar36 + -0x54);
            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||
               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          pcVar18 = (char *)(pbVar14 + -8);
          pbVar14 = pbVar14 + -4;
        } while (*(int *)pcVar18 == 0);
      }
      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
      piVar39 = *(int **)(puVar36 + -0x54);
      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||
         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar46 = *(code **)(pcVar51 + -0x7a84);
        if (*piVar39 < (int)pEVar16) goto LAB_00031474;
LAB_00030e44:
        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);
        pEVar28 = pEVar24;
        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);
        pcVar51 = *(code **)(puVar36 + -0x88);
        if (iVar8 == 0) {
LAB_000314a0:
          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;
          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);
          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);
          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
          do {
            uVar44 = *(undefined4 *)pbVar15;
            pbVar15 = pbVar15 + 4;
            *(undefined4 *)pbVar14 = uVar44;
            pbVar14 = pbVar14 + 4;
          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);
          iVar8 = *(int *)(puVar36 + -0x50);
        }
        else {
          if ((int)pEVar16 < (int)pEVar10) {
            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);
            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
            pEVar28 = *(Elf32_Ehdr **)pbVar14;
            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);
            pEVar27 = pEVar28;
            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)
            {
              pbVar15 = pbVar15 + 4;
              if (pEVar10 == pEVar16) goto LAB_00031130;
              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);
              pbVar14 = pbVar14 + 4;
              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar15 = pEVar28;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar8 = *(int *)(puVar36 + -0x50);
        }
        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);
        iVar13._0_1_ = pEVar27->e_ident_magic_num;
        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];
        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];
        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];
        if (iVar13 == 0) {
          iVar8 = *(int *)(puVar36 + -0x78);
          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);
          do {
            iVar8 = iVar8 + -1;
            if (iVar8 == 0) {
              piVar39 = *(int **)(puVar36 + -0x54);
              goto LAB_00030f08;
            }
            pcVar18 = (char *)(pbVar14 + -8);
            pbVar14 = pbVar14 + -4;
          } while (*(int *)pcVar18 == 0);
          *(int *)(puVar36 + -0x78) = iVar8;
        }
        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {
          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);
          pcVar46 = *(code **)(pcVar51 + -0x7a84);
LAB_00031474:
          pEVar28 = pEVar16;
          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));
          pcVar51 = *(code **)(puVar36 + -0x88);
          goto LAB_00030e44;
        }
        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);
        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;
      }
      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
      pEVar28 = *(Elf32_Ehdr **)pEVar5;
      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);
      puVar35 = puVar31;
      pEVar30 = pEVar5;
      if (puVar9 != (undefined1 *)0x0) {
        do {
          *puVar35 = pEVar28;
          puVar9 = puVar9 + -1;
          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;
          puVar35 = puVar35 + 1;
          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
        } while (puVar9 != (undefined1 *)0x0);
        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);
      }
      *puVar31 = pEVar28;
    }
    else {
      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);
      iVar26 = *(int *)(puVar36 + -0x88);
      iVar8 = (int)pEVar16 * 4;
      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));
      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;
      pEVar24 = pEVar40;
      if ((int)pEVar10 <= (int)pEVar16) {
        uVar44 = *(undefined4 *)(puVar36 + -0x4c);
        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);
        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
        iVar26 = *(int *)(puVar36 + -0x88);
        uVar25._0_1_ = pEVar42->e_ident_magic_num;
        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];
        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];
        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];
        pEVar16 = pEVar5;
        pEVar40 = pEVar42;
        if (puVar9 == (undefined1 *)0x0) {
          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
          pEVar5->e_ident_magic_str[2] = (char)uVar25;
          pEVar16 = pEVar10;
        }
        else {
          do {
            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
            pEVar16->e_ident_magic_str[2] = (char)uVar25;
            puVar9 = puVar9 + -1;
            uVar25._0_1_ = pEVar40->e_ident_class;
            uVar25._1_1_ = pEVar40->e_ident_data;
            uVar25._2_1_ = pEVar40->e_ident_version;
            uVar25._3_1_ = pEVar40->e_ident_osabi;
            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;
            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
          } while (puVar9 != (undefined1 *)0x0);
          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;
          pEVar16 = pEVar10;
        }
LAB_000312bc:
        pEVar28 = pEVar5;
        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));
        pcVar51 = *(code **)(puVar36 + -0x88);
        goto LAB_00030ddc;
      }
      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
      if (pEVar16 != (Elf32_Ehdr *)0x0) {
        uVar29._0_1_ = pEVar42->e_ident_magic_num;
        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];
        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];
        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];
        pEVar7 = pEVar5;
        pEVar40 = pEVar42;
        if (puVar9 != (undefined1 *)0x0) {
          do {
            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
            pEVar7->e_ident_magic_str[2] = (char)uVar29;
            puVar9 = puVar9 + -1;
            uVar29._0_1_ = pEVar40->e_ident_class;
            uVar29._1_1_ = pEVar40->e_ident_data;
            uVar29._2_1_ = pEVar40->e_ident_version;
            uVar29._3_1_ = pEVar40->e_ident_osabi;
            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;
            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
          } while (puVar9 != (undefined1 *)0x0);
          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);
        }
        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
        pEVar7->e_ident_magic_str[2] = (char)uVar29;
        goto LAB_000312bc;
      }
      pEVar28 = pEVar5;
      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);
      pcVar51 = *(code **)(puVar36 + -0x88);
      pEVar40 = pEVar30;
LAB_00030f04:
      piVar39 = *(int **)(puVar36 + -0x54);
LAB_00030f08:
      if (*piVar39 < 0) {
        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);
        pEVar28 = (Elf32_Ehdr *)0x0;
        (**(code **)(pcVar51 + -0x7a84))(pEVar24);
        pcVar51 = *(code **)(puVar36 + -0x88);
        pEVar24->e_ident_class = 0;
        pEVar24->e_ident_data = 0;
        pEVar24->e_ident_version = 0;
        pEVar24->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    piVar39 = *(int **)(puVar36 + -0x40);
    piVar12 = *(int **)(puVar36 + -0x58);
    if (piVar39 != (int *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar51 = *(code **)(pcVar46 + 0x66c10);
    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;
    *(undefined4 *)(puVar36 + -0x34) = 1;
    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;
    (*pcVar51)();
    pcVar51 = *(code **)(puVar36 + -0x88);
LAB_00030c64:
    piVar12 = *(int **)(puVar36 + -0x58);
  }
  if (*(int *)(puVar36 + -0x2c) == *piVar12) {
    return *piVar12;
  }
  pcVar51 = *(code **)(pcVar51 + -0x7b70);
  uVar44 = 0x3153c;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6db00;
  puVar9 = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;
  piVar12 = *(int **)(pcVar51 + 0x66000);
  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;
  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;
  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;
  *(undefined4 *)(puVar49 + -4) = uVar44;
  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;
  *(code **)(puVar49 + -0x28) = pcVar46;
  *(int *)(puVar49 + -0x1c) = *piVar12;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {
    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {
      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    else {
      pEVar41 = (Elf32_Ehdr *)piVar39[2];
    }
    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);
    pcVar46 = *(code **)(puVar49 + -0x28);
    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);
    uVar6 = 8;
    do {
      uVar54 = uVar6;
      pEVar40 = (Elf32_Ehdr *)*puVar35;
      puVar35 = puVar35 + -1;
      uVar6 = uVar54 - 1;
    } while (pEVar40 < pEVar28);
    if (uVar54 == 0) {
      trap(7);
    }
    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;
    *(undefined4 *)(puVar49 + -0x20) = 0;
    if (uVar6 < 0x7f01) {
      iVar8 = -(uVar6 + 7 & 0xfffffff8);
      puVar9 = puVar49 + iVar8 + -0x38;
      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);
    }
    else {
      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    iVar37 = 0;
    uVar55 = 1;
    iVar8 = 0;
    uVar6 = 0;
    uVar54 = 6;
    do {
      uVar53 = uVar6 + 1;
      iVar26 = iVar8;
      uVar17 = uVar54;
      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {
        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;
        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {
          uVar17 = uVar54 * uVar17;
        }
        else {
          iVar26 = iVar8 + 1;
          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;
        }
      }
      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);
      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;
      iVar37 = iVar37 + (uVar55 & 1);
      iVar8 = iVar26;
      uVar6 = uVar53;
      uVar54 = uVar17;
    } while (bVar1);
    if (iVar26 == 0) {
      *(uint *)piVar39[2] = uVar17;
      piVar39[1] = 1;
    }
    else {
      pcVar51 = *(code **)(pcVar46 + -0x7dbc);
      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;
      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    piVar43 = *(int **)(puVar49 + -0x20);
    if (piVar43 != (int *)0x0) {
      (**(code **)(pcVar46 + -0x7a2c))();
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);
    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;
    piVar39[1] = 1;
    piVar43 = piVar39;
    pEVar40 = pEVar28;
    pEVar28 = pEVar27;
    puVar9 = puVar49 + -0x38;
  }
  if (*(int *)(puVar49 + -0x1c) == *piVar12) {
    return *piVar12;
  }
  pcVar51 = *(code **)(pcVar46 + -0x7b70);
  pcVar52 = __gmpz_probab_prime_p;
  (*pcVar51)();
  pcVar46 = *(code **)(pcVar51 + 0x659a8);
  *(int **)(puVar9 + -0x24) = piVar39;
  *(int **)(puVar9 + -0x20) = piVar12;
  piVar39 = *(int **)(pcVar51 + 0x65da0);
  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;
  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;
  pEVar27 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;
  *(code **)(puVar9 + -4) = pcVar52;
  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;
  *(int *)(puVar9 + -0x2c) = *piVar39;
  iVar8 = (*pcVar46)();
  puVar19 = (uint *)piVar43[2];
  iVar37 = *(int *)(puVar9 + -0x90);
  pEVar10 = (Elf32_Ehdr *)piVar43[1];
  uVar6 = *puVar19;
  if (iVar8 < 1) {
    pEVar27 = (Elf32_Ehdr *)0xf4240;
    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);
    iVar37 = *(int *)(puVar9 + -0x90);
    if (iVar8 < 1) {
      iVar8 = 0;
      if (pEVar10 != (Elf32_Ehdr *)0x0) {
        if (uVar6 < 3) {
          iVar8 = 2;
          if (uVar6 != 2) {
            iVar8 = 0;
          }
        }
        else {
          uVar54 = 3;
          if ((uVar6 & 1) != 0) {
            do {
              if (uVar54 == 0) {
                trap(7);
              }
              uVar55 = uVar6 % uVar54;
              if (uVar6 / uVar54 < uVar54) {
                iVar8 = 2;
                goto LAB_00031824;
              }
              uVar54 = uVar54 + 2;
            } while (uVar55 != 0);
            iVar8 = 0;
          }
        }
      }
      goto LAB_00031824;
    }
    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;
    *(uint **)(puVar9 + -0x6c) = puVar19;
    piVar43 = (int *)(puVar9 + -0x74);
    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;
  }
  if (pEVar10 != (Elf32_Ehdr *)0x0) {
    uVar6 = uVar6 & 1;
    iVar8 = 0;
    if (uVar6 == 0) goto LAB_00031824;
    pEVar27 = pEVar10;
    if ((int)pEVar10 < 10) {
      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);
      iVar37 = *(int *)(puVar9 + -0x90);
    }
    else {
      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);
      iVar37 = *(int *)(puVar9 + -0x90);
    }
    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&
          (uVar54 != (uVar54 / 7) * 7)) &&
         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&
        ((uVar54 != (uVar54 / 0x11) * 0x11 &&
         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&
       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {
      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);
      iVar8 = *(int *)(puVar9 + -0x90);
      if (0x1f < uVar54) {
        iVar26 = 0;
        puVar36 = puVar9 + -0x68;
        uVar55 = 0x1f;
        iVar37 = 0;
LAB_00031a28:
        uVar17 = 3;
        do {
          if (uVar17 == 0) {
            trap(7);
          }
          uVar53 = uVar55 % uVar17;
          if (uVar55 / uVar17 < uVar17) {
            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {
              iVar50 = iVar37 + 1;
              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar9 + -0x7c) = puVar36;
            *(int *)(puVar9 + -0x80) = iVar26;
            *(uint *)(puVar9 + -0x84) = uVar54;
            if ((int)pEVar10 < 10) {
              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);
              iVar8 = *(int *)(puVar9 + -0x90);
              uVar54 = *(uint *)(puVar9 + -0x84);
              iVar26 = *(int *)(puVar9 + -0x80);
              puVar36 = *(undefined1 **)(puVar9 + -0x7c);
            }
            else {
              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);
              iVar8 = *(int *)(puVar9 + -0x90);
              puVar36 = *(undefined1 **)(puVar9 + -0x7c);
              iVar26 = *(int *)(puVar9 + -0x80);
              uVar54 = *(uint *)(puVar9 + -0x84);
            }
            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar17 = uVar17 + 2;
          iVar50 = iVar37;
        } while (uVar53 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);
      iVar37 = *(int *)(puVar9 + -0x90);
      pEVar27 = pEVar40;
      goto LAB_00031824;
    }
  }
  iVar8 = 0;
LAB_00031824:
  iVar26 = *(int *)(puVar9 + -0x2c);
  if (iVar26 == *piVar39) {
    return iVar8;
  }
LAB_00031c58:
  pcVar51 = *(code **)(iVar37 + -0x7b70);
  uVar44 = 0x31c64;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6d3d0;
  pcVar18 = *(char **)(pcVar51 + 0x65518);
  *(int **)(puVar9 + -0xa8) = piVar39;
  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;
  *(code **)(puVar9 + -0xb8) = pcVar46;
  *(undefined4 *)(puVar9 + -0xa4) = uVar44;
  if (*pcVar18 == '\0') {
    pcVar46 = *(code **)(pcVar51 + 0x65990);
    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);
    *pcVar18 = '\x01';
    (*pcVar46)(uVar44);
    pcVar46 = *(code **)(puVar9 + -0xb8);
  }
  pEVar10 = pEVar27;
  if ((int)pEVar27 < 0) {
    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;
  }
  iVar8 = (**(code **)(pcVar46 + -0x7f7c))
                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);
  if ((int)pEVar27 < 0) {
    iVar8 = -*(int *)(iVar26 + 4);
    *(int *)(iVar26 + 4) = iVar8;
  }
  return iVar8;
joined_r0x00030154:
  if (iVar8 != 0) goto LAB_00030180;
  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);
  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;
  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;
  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;
  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;
  goto joined_r0x00030154;
LAB_00030180:
  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||
     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,
     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {
    if (*param_1 < (int)pEVar5) {
LAB_00030268:
      pEVar27 = pEVar5;
      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);
    }
    param_1[1] = (int)pEVar5;
    unaff_s0 = pEVar5;
    if (pEVar5 != (Elf32_Ehdr *)0x0) {
LAB_000301b4:
      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);
      pEVar30 = (Elf32_Ehdr *)param_1[2];
      pEVar27 = *(Elf32_Ehdr **)unaff_s5;
      pEVar24 = pEVar30;
      unaff_s0 = pEVar5;
      pEVar7 = unaff_s5;
      if (puVar9 != (undefined1 *)0x0) {
        do {
          *(Elf32_Ehdr **)pEVar24 = pEVar27;
          puVar9 = puVar9 + -1;
          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;
          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;
          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;
        } while (puVar9 != (undefined1 *)0x0);
        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);
        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);
      }
      *(Elf32_Ehdr **)pEVar30 = pEVar27;
    }
  }
  else {
    unaff_s0 = pEVar5;
    if (pEVar5 != (Elf32_Ehdr *)0x0) {
      param_2 = *(Elf32_Ehdr **)(param_4 + 8);
      pEVar27 = param_2;
      pEVar30 = unaff_s5;
      pEVar40 = pEVar5;
      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);
      if (iVar8 == 0) {
LAB_000303e0:
        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;
        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;
        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);
        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);
        do {
          uVar44 = *(undefined4 *)pbVar15;
          pbVar15 = pbVar15 + 4;
          *(undefined4 *)pbVar14 = uVar44;
          pbVar14 = pbVar14 + 4;
        } while (pbVar15 != (byte *)in_t2);
        iVar26 = *(int *)pcVar18;
        unaff_s0 = pEVar5;
      }
      else {
        if ((int)pEVar5 < (int)pEVar10) {
          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);
          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);
          iVar8 = *(int *)pbVar14;
          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);
          *(Elf32_Ehdr **)pbVar15 = pEVar27;
          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {
            pbVar15 = pbVar15 + 4;
            if (pEVar10 == pEVar5) goto LAB_00030390;
            iVar8 = *(int *)(pbVar14 + 4);
            pbVar14 = pbVar14 + 4;
            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);
            *(Elf32_Ehdr **)pbVar15 = pEVar27;
          }
          goto LAB_000303e0;
        }
LAB_00030390:
        iVar26 = *(int *)pcVar18;
        unaff_s0 = pEVar5;
      }
      while (pEVar5 = pEVar16, iVar26 == 0) {
        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;
        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;
        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;
        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;
      }
      pEVar16 = pEVar5;
      if (*param_1 < (int)pEVar5) goto LAB_00030268;
      param_1[1] = (int)pEVar5;
      goto LAB_000301b4;
    }
LAB_00030250:
    if (*param_1 < 0) {
      pEVar27 = (Elf32_Ehdr *)0x0;
      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);
      param_1[1] = 0;
    }
    else {
      param_1[1] = 0;
    }
  }
  pEVar5 = local_30;
  param_3 = pEVar30;
  puVar9 = puVar47;
  if (local_30 != (Elf32_Ehdr *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
    param_3 = pEVar30;
  }
  goto LAB_00030200;
LAB_00031bcc:
  iVar37 = iVar37 + -1;
  if (iVar37 == -1) goto code_r0x00031bd8;
  uVar17 = *puVar23;
  if (uVar17 == 0) {
    trap(7);
  }
  puVar23 = puVar23 + -1;
  if (uVar6 % uVar17 == 0) {
    pEVar27 = pEVar10;
    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);
    iVar8 = 0;
    iVar37 = *(int *)(puVar9 + -0x90);
    if (iVar26 == 0) goto LAB_00031824;
    pEVar27 = (Elf32_Ehdr *)0x81;
    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar50 = 1;
  iVar37 = 0;
  uVar6 = uVar55;
LAB_00031b4c:
  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;
LAB_00031a4c:
  uVar17 = uVar55 + 2;
  iVar26 = (uint)(uVar17 < uVar55) + iVar26;
  uVar55 = uVar17;
  iVar37 = iVar50;
  if (uVar54 <= uVar17) goto LAB_00031a64;
  goto LAB_00031a28;
}


lui gp,0x7
addiu gp,gp,-0xfb0
addu gp,gp,t9
addiu sp,sp,-0x68
lw v0,0x4(a3)
sw s1,0x44(sp)
lw s1,-0x7b00(gp)
sw s8,0x60(sp)
or s8,sp,zero
sw s7,0x5c(sp)
or s7,a0,zero
sw s3,0x4c(sp)
or s3,a3,zero
sw s2,0x48(sp)
or a3,a2,zero
sw ra,0x64(sp)
or s2,a1,zero
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s0,0x40(sp)
sw gp,0x20(sp)
lw v1,0x0(s1)
sw v1,0x3c(s8)
bltz v0,0x0003005c
_subu s6,zero,v0
or s6,v0,zero
bne v0,zero,0x00030070
_or s4,s6,zero
lw t9,-0x7a64(gp)
jalr t9
_nop
lw v1,0x8(s3)
lw v0,0x0(v1)
andi a0,v0,0x1
beq a0,zero,0x00030068
_lw t9,-0x7a64(gp)
lw a1,0x4(a3)
blez a1,0x0003027c
_nop
lw v0,0x4(s2)
bltz v0,0x00030240
_or t0,v0,zero
beq v0,zero,0x000302a4
_lw t9,-0x7b08(gp)
sll s0,a1,0x5
sw a3,0x2c(s8)
or a0,t0,zero
sw v1,0x30(s8)
or a1,s0,zero
sw t0,0x34(s8)
or a2,s6,zero
jalr t9
_sw zero,0x38(s8)
addu v0,v0,s6
lw gp,0x20(s8)
lw t0,0x34(s8)
sll a1,v0,0x2
lw v1,0x30(s8)
sltiu v0,a1,0x7f01
beq v0,zero,0x000302ac
_lw a3,0x2c(s8)
addiu a1,a1,0x7
srl a1,a1,0x3
sll a1,a1,0x3
subu sp,sp,a1
addiu s5,sp,0x20
sll t2,s6,0x2
lw t3,0x8(a3)
lw a1,0x8(s2)
or a2,t0,zero
addu t1,s5,t2
lw t9,-0x7d70(gp)
sw t2,0x2c(s8)
or a3,t3,zero
sw t3,0x30(s8)
or a0,s5,zero
sw t1,0x1c(sp)
sw t1,0x34(s8)
sw s6,0x18(sp)
sw v1,0x14(sp)
jalr t9
_sw s0,0x10(sp)
lw t2,0x2c(s8)
lw gp,0x20(s8)
lw t1,0x34(s8)
addiu t0,t2,-0x4
addu t0,s5,t0
lw v0,0x0(t0)
bne v0,zero,0x000303d8
_lw t3,0x30(s8)
or v0,t1,zero
b 0x00030174
_or s0,s6,zero
lw v1,-0x4(v0)
bne v1,zero,0x00030180
_nop
addiu s0,s0,-0x1
bne s0,zero,0x00030168
_addiu v0,v0,-0x4
lw v0,0x0(t3)
andi v0,v0,0x1
beq v0,zero,0x0003019c
_nop
lw v0,0x4(s2)
bltz v0,0x00030248
_nop
lw v0,0x0(s7)
slt v0,v0,s0
bne v0,zero,0x00030268
_lw t9,-0x7a84(gp)
beq s0,zero,0x000301f4
_sw s0,0x4(s7)
addiu v0,s0,-0x1
lw a2,0x8(s7)
beq v0,zero,0x000301f0
_lw a1,0x0(s5)
addiu a0,s5,0x4
or v1,a2,zero
addiu v1,v1,0x4
sw a1,-0x4(v1)
addiu a0,a0,0x4
addiu v0,v0,-0x1
bne v0,zero,0x000301cc
_lw a1,-0x4(a0)
sll s0,s0,0x2
addiu s0,s0,-0x4
addu a2,a2,s0
sw a1,0x0(a2)
lw a0,0x38(s8)
bne a0,zero,0x000302dc
_lw t9,-0x7a2c(gp)
lw v1,0x3c(s8)
lw v0,0x0(s1)
bne v1,v0,0x00030424
_lw ra,0x64(s8)
or sp,s8,zero
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
b 0x0003009c
_subu t0,zero,v0
bne s0,zero,0x00030308
_or a0,s5,zero
lw v0,0x0(s7)
bltz v0,0x000302ec
_nop
b 0x000301f4
_sw zero,0x4(s7)
or s0,s4,zero
or a1,s0,zero
jalr t9
_or a0,s7,zero
b 0x000301ac
_lw gp,0x20(s8)
bne a1,zero,0x00030064
_li v1,0x1
beq s6,v1,0x0003041c
_xori v0,v0,0x1
li v0,0x1
lw v1,0x8(s7)
sw v0,0x4(s7)
li v0,0x1
b 0x00030200
_sw v0,0x0(v1)
b 0x00030200
_sw zero,0x4(s7)
lw t9,-0x7d50(gp)
addiu a0,s8,0x38
sw t0,0x2c(s8)
sw a3,0x30(s8)
jalr t9
_sw v1,0x34(s8)
lw gp,0x20(s8)
or s5,v0,zero
lw t0,0x2c(s8)
lw a3,0x30(s8)
b 0x000300fc
_lw v1,0x34(s8)
jalr t9
_nop
b 0x00030200
_lw gp,0x20(s8)
lw t9,-0x7a84(gp)
or a1,zero,zero
jalr t9
_or a0,s7,zero
lw gp,0x20(s8)
b 0x000301f4
_sw zero,0x4(s7)
lw s2,0x8(s3)
or a3,s0,zero
lw t9,-0x7b2c(gp)
or a2,s5,zero
sw t0,0x2c(s8)
sw t1,0x30(s8)
or a1,s2,zero
jalr t9
_sw t2,0x34(s8)
lw gp,0x20(s8)
lw t2,0x34(s8)
lw t1,0x30(s8)
beq v0,zero,0x000303e0
_lw t0,0x2c(s8)
slt v0,s0,s6
beq v0,zero,0x00030390
_sll v0,s0,0x2
addiu s0,s0,0x1
addu v1,s2,v0
addu v0,s5,v0
lw a0,0x0(v1)
addiu a1,a0,-0x1
beq a0,zero,0x00030388
_sw a1,0x0(v0)
b 0x000303e0
_nop
lw a0,0x4(v1)
addiu s0,s0,0x1
addiu v1,v1,0x4
addiu a1,a0,-0x1
bne a0,zero,0x000303e0
_sw a1,0x0(v0)
bne s6,s0,0x00030370
_addiu v0,v0,0x4
lw v0,0x0(t0)
bne v0,zero,0x000303bc
_nop
addiu s4,s4,-0x1
beq s4,zero,0x00030250
_nop
addiu t1,t1,-0x4
lw v0,-0x4(t1)
beq v0,zero,0x000303a0
_addiu s4,s4,-0x1
addiu s4,s4,0x1
lw v0,0x0(s7)
slt v0,v0,s4
bne v0,zero,0x00030264
_lw t9,-0x7a84(gp)
sw s4,0x4(s7)
b 0x000301b4
_or s0,s4,zero
b 0x00030180
_or s0,s6,zero
beq s2,s5,0x00030390
_slt v0,s0,s6
beq v0,zero,0x00030390
_nop
sll v1,s0,0x2
addu t2,s2,t2
addu v0,s2,v1
addu v1,s5,v1
lw a0,0x0(v0)
addiu v1,v1,0x4
addiu v0,v0,0x4
bne v0,t2,0x00030400
_sw a0,-0x4(v1)
b 0x00030394
_lw v0,0x0(t0)
b 0x00030290
_sltu v0,zero,v0
lw t9,-0x7b70(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" comment (function_definition "int __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "__gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" identifier (parameter_list "(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Elf32_Ehdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Elf32_Ehdr *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "Elf32_Ehdr *pEVar16;" type_identifier (pointer_declarator "*pEVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "Elf32_Ehdr *pEVar21;" type_identifier (pointer_declarator "*pEVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "Elf32_Ehdr *pEVar24;" type_identifier (pointer_declarator "*pEVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "char *in_t2;" primitive_type (pointer_declarator "*in_t2" * identifier) ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined1 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "word *pwVar38;" type_identifier (pointer_declarator "*pwVar38" * identifier) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "Elf32_Ehdr *pEVar40;" type_identifier (pointer_declarator "*pEVar40" * identifier) ;) (declaration "Elf32_Ehdr *pEVar41;" type_identifier (pointer_declarator "*pEVar41" * identifier) ;) (declaration "Elf32_Ehdr *pEVar42;" type_identifier (pointer_declarator "*pEVar42" * identifier) ;) (declaration "int *piVar43;" primitive_type (pointer_declarator "*piVar43" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 uVar44;" type_identifier identifier ;) (declaration "undefined *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "code *pcVar46;" type_identifier (pointer_declarator "*pcVar46" * identifier) ;) (declaration "undefined1 *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "undefined1 *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "undefined1 *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "code *pcVar51;" type_identifier (pointer_declarator "*pcVar51" * identifier) ;) (declaration "code *pcVar52;" type_identifier (pointer_declarator "*pcVar52" * identifier) ;) (declaration "uint uVar53;" type_identifier identifier ;) (declaration "uint uVar54;" type_identifier identifier ;) (declaration "uint uVar55;" type_identifier identifier ;) (declaration "undefined8 uVar56;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [32];" type_identifier (array_declarator "auStack_68 [32]" identifier [ number_literal ]) ;) (declaration "Elf32_Ehdr *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00097540" identifier = identifier) ;) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" identifier = identifier) ;) (expression_statement "puVar47 = auStack_68;" (assignment_expression "puVar47 = auStack_68" identifier = identifier) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(param_4 + 4)" * (cast_expression "(Elf32_Ehdr **)(param_4 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar10 = (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)))) ;) (if_statement "if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }" if (parenthesized_expression "(-1 < (int)pEVar5)" ( (binary_expression "-1 < (int)pEVar5" number_literal < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pEVar10 = pEVar5;\n  }" { (expression_statement "pEVar10 = pEVar5;" (assignment_expression "pEVar10 = pEVar5" identifier = identifier) ;) })) (expression_statement "pEVar40 = param_3;" (assignment_expression "pEVar40 = param_3" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;" 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)) )) (goto_statement "goto LAB_00030070;" goto statement_identifier ;)) (do_statement "do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  }" { (do_statement "do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    }" { (expression_statement "(*(code *)PTR___gmp_divide_by_zero_000975dc)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_000975dc" * (cast_expression "(code *)PTR___gmp_divide_by_zero_000975dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);" statement_identifier : (expression_statement "puVar19 = *(uint **)(param_4 + 8);" (assignment_expression "puVar19 = *(uint **)(param_4 + 8)" identifier = (pointer_expression "*(uint **)(param_4 + 8)" * (cast_expression "(uint **)(param_4 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar6 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )))) ;) }) while (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)) )) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) (if_statement "if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" if (parenthesized_expression "(0 < (int)pEVar27)" ( (binary_expression "0 < (int)pEVar27" number_literal < (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" { (expression_statement "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&param_2->e_ident_class" & (field_expression "param_2->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar30 = pEVar7;" (assignment_expression "pEVar30 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) })) (expression_statement "iVar37 = (int)pEVar27 << 5;" (assignment_expression "iVar37 = (int)pEVar27 << 5" identifier = (binary_expression "(int)pEVar27 << 5" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "local_30 = (Elf32_Ehdr *)0x0;" (assignment_expression "local_30 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" identifier = (call_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_itch_00097538" * (cast_expression "(code *)PTR___gmpn_sec_powm_itch_00097538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar30,iVar37,pEVar10)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;" (assignment_expression "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" identifier = (binary_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" (cast_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar10->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar10->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar10->e_ident_magic_str + iVar8" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) ))) * number_literal)) ;) (if_statement "if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar47 = auStack_68 + iVar8;" (assignment_expression "puVar47 = auStack_68 + iVar8" identifier = (binary_expression "auStack_68 + iVar8" identifier + identifier)) ;) (expression_statement "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb8 + iVar8)" ( (binary_expression "&stack0xffffffb8 + iVar8" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) }) (else_clause "else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" else (compound_statement "{\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" { (expression_statement "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "in_t2 = (char *)((int)pEVar10 * 4);" (assignment_expression "in_t2 = (char *)((int)pEVar10 * 4)" identifier = (cast_expression "(char *)((int)pEVar10 * 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 * 4)" ( (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;" (assignment_expression "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_abiversion" & (field_expression "pEVar40->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion" identifier = (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_abiversion" * (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_abiversion" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&param_2->e_ident_abiversion" & (field_expression "param_2->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x1c)" ( (binary_expression "puVar47 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x18)" ( (binary_expression "puVar47 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar47 + 0x14) = puVar19;" (assignment_expression "*(uint **)(puVar47 + 0x14) = puVar19" (pointer_expression "*(uint **)(puVar47 + 0x14)" * (cast_expression "(uint **)(puVar47 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x14)" ( (binary_expression "puVar47 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar47 + 0x10) = iVar37;" (assignment_expression "*(int *)(puVar47 + 0x10) = iVar37" (pointer_expression "*(int *)(puVar47 + 0x10)" * (cast_expression "(int *)(puVar47 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x10)" ( (binary_expression "puVar47 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar40 = in_t3;" (assignment_expression "pEVar40 = in_t3" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);" (call_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_000972d0" * (cast_expression "(code *)PTR___gmpn_sec_powm_000972d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;) (expression_statement "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);" (assignment_expression "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" identifier = (binary_expression "in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" identifier + (cast_expression "(int)(unaff_s5->e_ident_magic_str + -5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + -5)" ( (binary_expression "unaff_s5->e_ident_magic_str + -5" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)pcVar18;" (assignment_expression "iVar8 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar7 = in_t1;" (assignment_expression "pEVar7 = in_t1" identifier = identifier) ;) (expression_statement "pEVar5 = pEVar10;" (assignment_expression "pEVar5 = pEVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) })) }) while (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)) )) ;) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = (uint)(uVar6 != 1);\n  }" { (expression_statement "uVar6 = (uint)(uVar6 != 1);" (assignment_expression "uVar6 = (uint)(uVar6 != 1)" identifier = (call_expression "(uint)(uVar6 != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )))) ;) }) (else_clause "else {\n    uVar6 = 1;\n  }" else (compound_statement "{\n    uVar6 = 1;\n  }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }))) (expression_statement "param_1[1] = uVar6;" (assignment_expression "param_1[1] = uVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)param_1[2] = 1;" (assignment_expression "*(undefined4 *)param_1[2] = 1" (pointer_expression "*(undefined4 *)param_1[2]" * (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) = number_literal) ;) (labeled_statement "LAB_00030200:\n  iVar8 = *(int *)puVar4;" statement_identifier : (expression_statement "iVar8 = *(int *)puVar4;" (assignment_expression "iVar8 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (if_statement "if (local_2c == iVar8) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c == iVar8)" ( (binary_expression "local_2c == iVar8" identifier == identifier) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (expression_statement "pcVar51 = FUN_00030430;" (assignment_expression "pcVar51 = FUN_00030430" identifier = identifier) ;) (expression_statement "puVar45 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar45 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined **)(puVar9 + -0x24) = puVar4;" (assignment_expression "*(undefined **)(puVar9 + -0x24) = puVar4" (pointer_expression "*(undefined **)(puVar9 + -0x24)" * (cast_expression "(undefined **)(puVar9 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar39 = *(int **)(puVar45 + 0x67110);" (assignment_expression "piVar39 = *(int **)(puVar45 + 0x67110)" identifier = (pointer_expression "*(int **)(puVar45 + 0x67110)" * (cast_expression "(int **)(puVar45 + 0x67110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x67110)" ( (binary_expression "puVar45 + 0x67110" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined4 **)(puVar9 + 0x10);" (assignment_expression "puVar35 = *(undefined4 **)(puVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0x10)" * (cast_expression "(undefined4 **)(puVar9 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x10)" ( (binary_expression "puVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;" (assignment_expression "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10" (pointer_expression "*(undefined **)(puVar9 + -0x38)" * (cast_expression "(undefined **)(puVar9 + -0x38)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) = (binary_expression "puVar45 + 0x6ec10" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x1c) = param_4;" (assignment_expression "*(int *)(puVar9 + -0x1c) = param_4" (pointer_expression "*(int *)(puVar9 + -0x1c)" * (cast_expression "(int *)(puVar9 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x20)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x20)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -4) = pcVar51;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar51" (pointer_expression "*(code **)(puVar9 + -4)" * (cast_expression "(code **)(puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar9 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar9 + -8)" * (cast_expression "(undefined1 **)(puVar9 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar9 + -0xc) = param_1" (pointer_expression "*(int **)(puVar9 + -0xc)" * (cast_expression "(int **)(puVar9 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x28)" ( (binary_expression "puVar9 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x30)" * (cast_expression "(undefined4 *)(puVar9 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar44 = *(undefined4 *)(puVar9 + 0x14);" (assignment_expression "uVar44 = *(undefined4 *)(puVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(puVar9 + 0x14)" * (cast_expression "(undefined4 *)(puVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x14)" ( (binary_expression "puVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" identifier = identifier) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }" { (expression_statement "pEVar7 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66e78);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66e78)" identifier = (pointer_expression "*(code **)(puVar45 + 0x66e78)" * (cast_expression "(code **)(puVar45 + 0x66e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66e78)" ( (binary_expression "puVar45 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" * (cast_expression "(undefined4 *)(puVar9 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar11 = (*pcVar51)(uVar44);" (assignment_expression "uVar11 = (*pcVar51)(uVar44)" identifier = (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar11 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x18)" ( (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 8)" ( (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" statement_identifier : (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) ))))) ;)) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) ;) (expression_statement "pEVar40 = unaff_s0;" (assignment_expression "pEVar40 = unaff_s0" identifier = identifier) ;) (expression_statement "puVar49 = puVar36;" (assignment_expression "puVar49 = puVar36" identifier = identifier) ;) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" if (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" { (labeled_statement "LAB_00030534:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" else (compound_statement "{\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" { (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" identifier = identifier) ;) (expression_statement "unaff_s0 = pEVar40;" (assignment_expression "unaff_s0 = pEVar40" identifier = identifier) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x2" identifier == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar22 = *(undefined4 *)param_3;" (assignment_expression "uVar22 = *(undefined4 *)param_3" identifier = (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar11 = *(undefined4 *)&param_3->e_ident_class;" (assignment_expression "uVar11 = *(undefined4 *)&param_3->e_ident_class" identifier = (pointer_expression "*(undefined4 *)&param_3->e_ident_class" * (cast_expression "(undefined4 *)&param_3->e_ident_class" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_3->e_ident_class" & (field_expression "param_3->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66f54);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66f54)" identifier = (pointer_expression "*(code **)(puVar45 + 0x66f54)" * (cast_expression "(code **)(puVar45 + 0x66f54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66f54)" ( (binary_expression "puVar45 + 0x66f54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = *puVar35" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" * (cast_expression "(undefined4 *)(puVar9 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x40)" ( (binary_expression "puVar9 + -0x40" identifier + number_literal) )))) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar22;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar22" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" * (cast_expression "(undefined4 *)(puVar9 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" * (cast_expression "(undefined4 *)(puVar9 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28))" ( (binary_expression "((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)" (parenthesized_expression "((int)pEVar40 < 0x28)" ( (binary_expression "(int)pEVar40 < 0x28" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)pEVar27 - (int)pEVar40 < 0x28)" ( (binary_expression "(int)pEVar27 - (int)pEVar40 < 0x28" (binary_expression "(int)pEVar27 - (int)pEVar40" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) ))) )) (compound_statement "{\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar11 = *puVar35;" (assignment_expression "uVar11 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6700c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6700c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6700c)" * (cast_expression "(code **)(puVar45 + 0x6700c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6700c)" ( (binary_expression "puVar45 + 0x6700c" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" * (cast_expression "(undefined4 *)(puVar9 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" identifier = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" if (parenthesized_expression "((int)pEVar40 < 200)" ( (binary_expression "(int)pEVar40 < 200" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }" { (labeled_statement "LAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);" statement_identifier : (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6709c)" * (cast_expression "(code **)(puVar45 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6709c)" ( (binary_expression "puVar45 + 0x6709c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" { (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6709c)" * (cast_expression "(code **)(puVar45 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6709c)" ( (binary_expression "puVar45 + 0x6709c" identifier + number_literal) ))))) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (if_statement "if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" if (parenthesized_expression "(3999 < (int)pEVar27)" ( (binary_expression "3999 < (int)pEVar27" number_literal < (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" { (expression_statement "puVar49 = (undefined1 *)((int)pEVar40 * 4);" (assignment_expression "puVar49 = (undefined1 *)((int)pEVar40 * 4)" identifier = (cast_expression "(undefined1 *)((int)pEVar40 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar40 * 4)" ( (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" if (parenthesized_expression "((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27)" ( (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (cast_expression "(double)(int)pEVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" * (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" ( (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a70" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" * (cast_expression "(int *)(puVar45 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x66c3c)" ( (binary_expression "puVar45 + 0x66c3c" identifier + number_literal) )))) + number_literal) ))))) + (binary_expression "(double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (cast_expression "(double)(int)pEVar27" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" * (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" ( (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a68" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" * (cast_expression "(int *)(puVar45 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x66c3c)" ( (binary_expression "puVar45 + 0x66c3c" identifier + number_literal) )))) + number_literal) )))))) <= (binary_expression "(double)(int)pEVar40 * (double)(int)pEVar27" (cast_expression "(double)(int)pEVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(double)(int)pEVar27" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" { (expression_statement "param_1 = (int *)(puVar9 + -0x30);" (assignment_expression "param_1 = (int *)(puVar9 + -0x30)" identifier = (cast_expression "(int *)(puVar9 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) )))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" (parenthesized_expression "(**(code **)(puVar45 + 0x66ec0))" ( (pointer_expression "**(code **)(puVar45 + 0x66ec0)" * (pointer_expression "*(code **)(puVar45 + 0x66ec0)" * (cast_expression "(code **)(puVar45 + 0x66ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66ec0)" ( (binary_expression "puVar45 + 0x66ec0" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar49)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" identifier = (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7e7c)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7e7c" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pEVar27,pEVar40,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);" (assignment_expression "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" identifier = (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7d50)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7d50" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,iVar8 << 2)" ( identifier , (binary_expression "iVar8 << 2" identifier << number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" * (cast_expression "(undefined4 *)(puVar9 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x40)" ( (binary_expression "puVar9 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar40[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar7 = pEVar10;" (assignment_expression "pEVar7 = pEVar10" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);" (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7ccc)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7ccc" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar11._0_1_ = pEVar10->e_ident_magic_num;" (assignment_expression "uVar11._0_1_ = pEVar10->e_ident_magic_num" (field_expression "uVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar10->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar11._1_1_ = pEVar10->e_ident_magic_str[0];" (assignment_expression "uVar11._1_1_ = pEVar10->e_ident_magic_str[0]" (field_expression "uVar11._1_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar11._2_1_ = pEVar10->e_ident_magic_str[1];" (assignment_expression "uVar11._2_1_ = pEVar10->e_ident_magic_str[1]" (field_expression "uVar11._2_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar11._3_1_ = pEVar10->e_ident_magic_str[2];" (assignment_expression "uVar11._3_1_ = pEVar10->e_ident_magic_str[2]" (field_expression "uVar11._3_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar24 = pEVar5;" (assignment_expression "pEVar24 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar42 = pEVar10;" (assignment_expression "pEVar42 = pEVar10" identifier = identifier) ;) (do_statement "do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);" do (compound_statement "{\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          }" { (expression_statement "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar24->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar11 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x18)" ( (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar24->e_ident_magic_str[0]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar24->e_ident_magic_str[1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 8)" ( (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar24->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar24->e_ident_magic_str[2]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar38 = (word *)((int)pwVar38 + -1);" (assignment_expression "pwVar38 = (word *)((int)pwVar38 + -1)" identifier = (cast_expression "(word *)((int)pwVar38 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar38 + -1)" ( (binary_expression "(int)pwVar38 + -1" (cast_expression "(int)pwVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar11._0_1_ = pEVar42->e_ident_class;" (assignment_expression "uVar11._0_1_ = pEVar42->e_ident_class" (field_expression "uVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar11._1_1_ = pEVar42->e_ident_data;" (assignment_expression "uVar11._1_1_ = pEVar42->e_ident_data" (field_expression "uVar11._1_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar11._2_1_ = pEVar42->e_ident_version;" (assignment_expression "uVar11._2_1_ = pEVar42->e_ident_version" (field_expression "uVar11._2_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar11._3_1_ = pEVar42->e_ident_osabi;" (assignment_expression "uVar11._3_1_ = pEVar42->e_ident_osabi" (field_expression "uVar11._3_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar24->e_ident_class" & (field_expression "pEVar24->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar42->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar38 != (word *)0x0)" ( (binary_expression "pwVar38 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10)" (field_expression "pEVar5[-0xffffffff00000001].e_shnum" (subscript_expression "pEVar5[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar11 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;" (assignment_expression "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11" (field_expression "pEVar5[-0xffffffff00000001].e_shstrndx" (subscript_expression "pEVar5[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "unaff_s0 = (Elf32_Ehdr *)0x0;" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar36 = puVar49;" (assignment_expression "puVar36 = puVar49" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00030504;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 **)(puVar9 + -0x44) = puVar35;" (assignment_expression "*(undefined4 **)(puVar9 + -0x44) = puVar35" (pointer_expression "*(undefined4 **)(puVar9 + -0x44)" * (cast_expression "(undefined4 **)(puVar9 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" identifier = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" if (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" { (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030534;" goto statement_identifier ;) })) }))) (if_statement "if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }" if (parenthesized_expression "(*(int *)(puVar9 + -0x2c) == *piVar39)" ( (binary_expression "*(int *)(puVar9 + -0x2c) == *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n    return *piVar39;\n  }" { (return_statement "return *piVar39;" return (pointer_expression "*piVar39" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7b70)" * (cast_expression "(code **)(iVar8 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b70)" ( (binary_expression "iVar8 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = FUN_000306c8;" (assignment_expression "pcVar52 = FUN_000306c8" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6e978;" (assignment_expression "pcVar46 = pcVar51 + 0x6e978" identifier = (binary_expression "pcVar51 + 0x6e978" identifier + number_literal)) ;) (expression_statement "puVar36 = puVar9 + -0xb0;" (assignment_expression "puVar36 = puVar9 + -0xb0" identifier = (binary_expression "puVar9 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x70)" ( (binary_expression "puVar9 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x68)" ( (binary_expression "puVar9 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar16 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 4)" ( (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar51 + 0x66e78)" * (cast_expression "(Elf32_Ehdr **)(pcVar51 + 0x66e78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66e78)" ( (binary_expression "pcVar51 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar9 + -0x60) = puVar49;" (assignment_expression "*(undefined1 **)(puVar9 + -0x60) = puVar49" (pointer_expression "*(undefined1 **)(puVar9 + -0x60)" * (cast_expression "(undefined1 **)(puVar9 + -0x60)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x60)" ( (binary_expression "puVar9 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -100) = param_1;" (assignment_expression "*(int **)(puVar9 + -100) = param_1" (pointer_expression "*(int **)(puVar9 + -100)" * (cast_expression "(int **)(puVar9 + -100)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -100)" ( (binary_expression "puVar9 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x6c) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0x6c) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0x6c)" * (cast_expression "(undefined4 *)(puVar9 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x6c)" ( (binary_expression "puVar9 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x74)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x74)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x74)" ( (binary_expression "puVar9 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x78)" ( (binary_expression "puVar9 + -0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x80)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x80)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0x5c) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -0x5c) = pcVar52" (pointer_expression "*(code **)(puVar9 + -0x5c)" * (cast_expression "(code **)(puVar9 + -0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x5c)" ( (binary_expression "puVar9 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x7c) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x7c) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x7c)" * (cast_expression "(int **)(puVar9 + -0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0x98) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0x98) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0x98)" * (cast_expression "(code **)(puVar9 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x88) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x88)" * (cast_expression "(undefined4 *)(puVar9 + -0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;" (assignment_expression "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42" (pointer_expression "*(undefined4 *)(puVar9 + -0x84)" * (cast_expression "(undefined4 *)(puVar9 + -0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pEVar42" * (cast_expression "(undefined4 *)pEVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" if (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar10 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }" { (expression_statement "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar10->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar10->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar10->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar36 = puVar9 + iVar8 + -0xb0;" (assignment_expression "puVar36 = puVar9 + iVar8 + -0xb0" identifier = (binary_expression "puVar9 + iVar8 + -0xb0" (binary_expression "puVar9 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar8 + -0x98)" ( (binary_expression "puVar9 + iVar8 + -0x98" (binary_expression "puVar9 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + 0x66c28);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + 0x66c28)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x66c28)" * (cast_expression "(code **)(pcVar51 + 0x66c28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66c28)" ( (binary_expression "pcVar51 + 0x66c28" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" identifier = (cast_expression "(Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar9 + -0x88,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar9 + -0x88,pEVar10)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) , identifier ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar9 + -0x98);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0x98)" identifier = (pointer_expression "*(code **)(puVar9 + -0x98)" * (cast_expression "(code **)(puVar9 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;" (assignment_expression "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" identifier = (binary_expression "(int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" (cast_expression "(int)((int)pEVar16 + (1 - (int)pEVar40))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pEVar16 + (1 - (int)pEVar40))" ( (binary_expression "(int)pEVar16 + (1 - (int)pEVar40)" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)pEVar40)" ( (binary_expression "1 - (int)pEVar40" number_literal - (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7d50)" * (cast_expression "(code **)(pcVar46 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7d50)" ( (binary_expression "pcVar46 + -0x7d50" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar49 = puVar36 + iVar8 + 0x18;" (assignment_expression "puVar49 = puVar36 + iVar8 + 0x18" identifier = (binary_expression "puVar36 + iVar8 + 0x18" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar36 = puVar36 + iVar8;" (assignment_expression "puVar36 = puVar36 + iVar8" identifier = (binary_expression "puVar36 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" else (compound_statement "{\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" { (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);" (assignment_expression "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88)" identifier = (cast_expression "(undefined1 *)(*pcVar51)(puVar9 + -0x88)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar9 + -0x88)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) ))))) ;) }))) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" { (expression_statement "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar44._0_1_ = pEVar7->e_ident_magic_num;" (assignment_expression "uVar44._0_1_ = pEVar7->e_ident_magic_num" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar7->e_ident_magic_str[0];" (assignment_expression "uVar44._1_1_ = pEVar7->e_ident_magic_str[0]" (field_expression "uVar44._1_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._2_1_ = pEVar7->e_ident_magic_str[1];" (assignment_expression "uVar44._2_1_ = pEVar7->e_ident_magic_str[1]" (field_expression "uVar44._2_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._3_1_ = pEVar7->e_ident_magic_str[2];" (assignment_expression "uVar44._3_1_ = pEVar7->e_ident_magic_str[2]" (field_expression "uVar44._3_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar41 = pEVar27;" (assignment_expression "pEVar41 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar7;" (assignment_expression "pEVar28 = pEVar7" identifier = identifier) ;) (if_statement "if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" if (parenthesized_expression "(puVar20 == (undefined1 *)0x0)" ( (binary_expression "puVar20 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" identifier = identifier) ;) }) (else_clause "else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" else (compound_statement "{\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" { (do_statement "do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);" do (compound_statement "{\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      }" { (expression_statement "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar41->e_ident_magic_str[0]" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar41->e_ident_magic_str[1]" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar41->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar41->e_ident_magic_str[2]" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar44._0_1_ = pEVar28->e_ident_class;" (assignment_expression "uVar44._0_1_ = pEVar28->e_ident_class" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar28->e_ident_data;" (assignment_expression "uVar44._1_1_ = pEVar28->e_ident_data" (field_expression "uVar44._1_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar44._2_1_ = pEVar28->e_ident_version;" (assignment_expression "uVar44._2_1_ = pEVar28->e_ident_version" (field_expression "uVar44._2_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar44._3_1_ = pEVar28->e_ident_osabi;" (assignment_expression "uVar44._3_1_ = pEVar28->e_ident_osabi" (field_expression "uVar44._3_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar41->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar41->e_ident_class" & (field_expression "pEVar41->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" ( (binary_expression "puVar20 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );" (assignment_expression "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shentsize + 1" (cast_expression "(int)&pEVar10[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shentsize" & (field_expression "pEVar10[-1].e_shentsize" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar27->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar10->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar36 + 0x14) = puVar49;" (assignment_expression "*(undefined1 **)(puVar36 + 0x14) = puVar49" (pointer_expression "*(undefined1 **)(puVar36 + 0x14)" * (cast_expression "(undefined1 **)(puVar36 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x14)" ( (binary_expression "puVar36 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x10)" ( (binary_expression "puVar36 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar34 = pEVar40;" (assignment_expression "pEVar34 = pEVar40" identifier = identifier) ;) (expression_statement "FUN_00030430(pEVar27);" (call_expression "FUN_00030430(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" identifier = (pointer_expression "*(int *)(puVar9 + -0x98)" * (cast_expression "(int *)(puVar9 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar40;" (assignment_expression "pEVar41 = pEVar40" identifier = identifier) ;) (if_statement "if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" if (parenthesized_expression "(pEVar40 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" { (expression_statement "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar27;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar27" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar27" * (cast_expression "(Elf32_Ehdr **)pEVar27" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar21 = pEVar24;" (assignment_expression "pEVar21 = pEVar24" identifier = identifier) ;) (expression_statement "pEVar3 = pEVar27;" (assignment_expression "pEVar3 = pEVar27" identifier = identifier) ;) (if_statement "if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" ( (binary_expression "puVar49 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar21 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar21 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar21" * (cast_expression "(Elf32_Ehdr **)pEVar21" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar49 = puVar49 + -1;" (assignment_expression "puVar49 = puVar49 + -1" identifier = (binary_expression "puVar49 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar3->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar3->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar3->e_ident_class" & (field_expression "pEVar3->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;" (assignment_expression "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar21->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar21->e_ident_class" & (field_expression "pEVar21->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar3->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar3->e_ident_class" & (field_expression "pEVar3->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" ( (binary_expression "puVar49 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar40 * 4 + -4)" ( (binary_expression "(int)pEVar40 * 4 + -4" (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar40[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar24" * (cast_expression "(Elf32_Ehdr **)pEVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (expression_statement "piVar39 = *(int **)(puVar9 + -0x88);" (assignment_expression "piVar39 = *(int **)(puVar9 + -0x88)" identifier = (pointer_expression "*(int **)(puVar9 + -0x88)" * (cast_expression "(int **)(puVar9 + -0x88)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" { (expression_statement "(**(code **)(iVar8 + -0x7a2c))();" (call_expression "(**(code **)(iVar8 + -0x7a2c))()" (parenthesized_expression "(**(code **)(iVar8 + -0x7a2c))" ( (pointer_expression "**(code **)(iVar8 + -0x7a2c)" * (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" identifier = (pointer_expression "*(int *)(puVar9 + -0x98)" * (cast_expression "(int *)(puVar9 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) })) (expression_statement "iVar50._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "iVar50._0_1_ = pEVar42->e_ident_magic_num" (field_expression "iVar50._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar50._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "iVar50._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "iVar50._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "iVar50._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "iVar50._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "iVar50._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "iVar50._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }" if (parenthesized_expression "(*(int *)(puVar9 + -0x84) == iVar50)" ( (binary_expression "*(int *)(puVar9 + -0x84) == iVar50" (pointer_expression "*(int *)(puVar9 + -0x84)" * (cast_expression "(int *)(puVar9 + -0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n    return iVar50;\n  }" { (return_statement "return iVar50;" return identifier ;) })) (expression_statement "pcVar46 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar46 = *(code **)(iVar8 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7b70)" * (cast_expression "(code **)(iVar8 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b70)" ( (binary_expression "iVar8 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_powm_ui;" (assignment_expression "pcVar52 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = pcVar46 + 0x6e770;" (assignment_expression "pcVar51 = pcVar46 + 0x6e770" identifier = (binary_expression "pcVar46 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);" (assignment_expression "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(pcVar46 + 0x66c70)" * (cast_expression "(undefined4 **)(pcVar46 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66c70)" ( (binary_expression "pcVar46 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar48 = puVar36 + -0xa0;" (assignment_expression "puVar48 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;" (assignment_expression "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0" (pointer_expression "*(undefined1 **)(puVar36 + -8)" * (cast_expression "(undefined1 **)(puVar36 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -8)" ( (binary_expression "puVar36 + -8" identifier + number_literal) )))) = (binary_expression "puVar9 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x20)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x20)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x20)" ( (binary_expression "puVar36 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar36 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar36 + -4) = pcVar52" (pointer_expression "*(code **)(puVar36 + -4)" * (cast_expression "(code **)(puVar36 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -4)" ( (binary_expression "puVar36 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar36 + -0x58) = puVar35;" (assignment_expression "*(undefined4 **)(puVar36 + -0x58) = puVar35" (pointer_expression "*(undefined4 **)(puVar36 + -0x58)" * (cast_expression "(undefined4 **)(puVar36 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0xc)" ( (binary_expression "puVar36 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x10)" ( (binary_expression "puVar36 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x14)" ( (binary_expression "puVar36 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x18)" ( (binary_expression "puVar36 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x1c)" ( (binary_expression "puVar36 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x24)" ( (binary_expression "puVar36 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x28)" ( (binary_expression "puVar36 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar36 + -0x88) = pcVar51;" (assignment_expression "*(code **)(puVar36 + -0x88) = pcVar51" (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar36 + -0x54) = piVar39;" (assignment_expression "*(int **)(puVar36 + -0x54) = piVar39" (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x68)" ( (binary_expression "puVar36 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x2c) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar36 + -0x2c) = *puVar35" (pointer_expression "*(undefined4 *)(puVar36 + -0x2c)" * (cast_expression "(undefined4 *)(puVar36 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x2c)" ( (binary_expression "puVar36 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" identifier = identifier) ;) (if_statement "if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" if (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)0x14)" ( (binary_expression "pEVar30 < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar34->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar34->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar34->e_ident_class" & (field_expression "pEVar34->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar34->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar34->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar34->e_ident_abiversion" & (field_expression "pEVar34->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar10 = pEVar7;" (assignment_expression "pEVar10 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" { (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }" { (expression_statement "pEVar7 = pEVar30;" (assignment_expression "pEVar7 = pEVar30" identifier = identifier) ;) (expression_statement "uVar56 = (**(code **)(pcVar46 + 0x66d0c))();" (assignment_expression "uVar56 = (**(code **)(pcVar46 + 0x66d0c))()" identifier = (call_expression "(**(code **)(pcVar46 + 0x66d0c))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x66d0c))" ( (pointer_expression "**(code **)(pcVar46 + 0x66d0c)" * (pointer_expression "*(code **)(pcVar46 + 0x66d0c)" * (cast_expression "(code **)(pcVar46 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66d0c)" ( (binary_expression "pcVar46 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar6 = (uint)uVar56;" statement_identifier : (expression_statement "uVar6 = (uint)uVar56;" (assignment_expression "uVar6 = (uint)uVar56" identifier = (cast_expression "(uint)uVar56" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar56 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar56 >> 0x20)" ( (binary_expression "(ulonglong)uVar56 >> 0x20" (cast_expression "(ulonglong)uVar56" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" identifier = identifier) ;) }) (else_clause "else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 * 4)" ( (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\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        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" { (expression_statement "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);" (assignment_expression "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar36 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar36 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar36 + -0x4c) != 1" (pointer_expression "**(int **)(puVar36 + -0x4c)" * (pointer_expression "*(int **)(puVar36 + -0x4c)" * (cast_expression "(int **)(puVar36 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar39[1] = uVar6;" (assignment_expression "piVar39[1] = uVar6" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar39[2] = 1;" (assignment_expression "*(undefined4 *)piVar39[2] = 1" (pointer_expression "*(undefined4 *)piVar39[2]" * (cast_expression "(undefined4 *)piVar39[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar36 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar36 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar36 + -0x40)" * (cast_expression "(undefined4 *)(puVar36 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;" (assignment_expression "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum" (pointer_expression "*(word **)(puVar36 + -0x50)" * (cast_expression "(word **)(puVar36 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar27[-1].e_shnum" & (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" ( (binary_expression "*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar27[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27[-1].e_shnum" & (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar28 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar28 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }" { (expression_statement "iVar8 = 0x20;" (assignment_expression "iVar8 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar8 = 0x18;\n        }" { (expression_statement "iVar8 = 0x18;" (assignment_expression "iVar8 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar37 = 9;" (assignment_expression "iVar37 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar37 = 1;\n        }" { (expression_statement "iVar37 = 1;" (assignment_expression "iVar37 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" { (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar8 = 8;\n        }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) })) (expression_statement "iVar37 = 0x19;" (assignment_expression "iVar37 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar37 = 0x11;\n        }" { (expression_statement "iVar37 = 0x11;" (assignment_expression "iVar37 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar46 + 0x668bc)" * (cast_expression "(Elf32_Ehdr **)(pcVar46 + 0x668bc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x668bc)" ( (binary_expression "pcVar46 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];" (assignment_expression "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" identifier = (binary_expression "iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" identifier - (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar28 >> iVar37) - 1" (parenthesized_expression "((uint)pEVar28 >> iVar37)" ( (binary_expression "(uint)pEVar28 >> iVar37" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar36 + -0x6c) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x6c) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x6c)" * (cast_expression "(int *)(puVar36 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" { (if_statement "if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar48 = puVar36 + iVar8 + -0xa0;" (assignment_expression "puVar48 = puVar36 + iVar8 + -0xa0" identifier = (binary_expression "puVar36 + iVar8 + -0xa0" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + iVar8 + -0x88)" ( (binary_expression "puVar36 + iVar8 + -0x88" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" else (compound_statement "{\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar46 + 0x66a20))" ( (pointer_expression "**(code **)(pcVar46 + 0x66a20)" * (pointer_expression "*(code **)(pcVar46 + 0x66a20)" * (cast_expression "(code **)(pcVar46 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66a20)" ( (binary_expression "pcVar46 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );" (call_expression "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" * (cast_expression "(undefined4 *)(puVar36 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar20 = puVar48;" (assignment_expression "puVar20 = puVar48" identifier = identifier) ;) })) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" { (expression_statement "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);" (assignment_expression "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4" (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50)" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar28 >> 0x10)" ( (binary_expression "(uint)pEVar28 >> 0x10" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (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 "uVar54 = ~(uint)pEVar28 / (uint)pEVar7;" (assignment_expression "uVar54 = ~(uint)pEVar28 / (uint)pEVar7" identifier = (binary_expression "~(uint)pEVar28 / (uint)pEVar7" (unary_expression "~(uint)pEVar28" ~ (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "in_t2 = (char *)((uint)pEVar28 & 0xffff);" (assignment_expression "in_t2 = (char *)((uint)pEVar28 & 0xffff)" identifier = (cast_expression "(char *)((uint)pEVar28 & 0xffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar28 & 0xffff)" ( (binary_expression "(uint)pEVar28 & 0xffff" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);" (assignment_expression "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54)" identifier = (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar54)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar54)" ( (binary_expression "(int)in_t2 * uVar54" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10" (binary_expression "~(uint)pEVar28 % (uint)pEVar7" (unary_expression "~(uint)pEVar28" ~ (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" identifier = identifier) ;) (expression_statement "in_t1 = pEVar34;" (assignment_expression "in_t1 = pEVar34" identifier = identifier) ;) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" identifier = identifier) ;) (if_statement "if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar42 < in_t3)" ( (binary_expression "pEVar42 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" ( (binary_expression "pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar42->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + -2)" ( (binary_expression "pEVar42->e_ident_magic_str + -2" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))" ( (binary_expression "(pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" (parenthesized_expression "(pEVar28 <= pEVar42)" ( (binary_expression "pEVar28 <= pEVar42" identifier <= identifier) )) && (parenthesized_expression "(uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" ( (comma_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3" (assignment_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2)" identifier = (call_expression "CONCAT44(pEVar42,uVar54 - 2)" identifier (argument_list "(pEVar42,uVar54 - 2)" ( identifier , (binary_expression "uVar54 - 2" identifier - number_literal) )))) , (binary_expression "pEVar42 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (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 "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;" (assignment_expression "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" identifier = (binary_expression "(uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar42 - (int)in_t3)" ( (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar42 - (int)in_t3)" ( (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" ( (binary_expression "pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2)" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar28->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + -2)" ( (binary_expression "pEVar28->e_ident_magic_str + -2" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar54 = uVar55;" (assignment_expression "uVar54 = uVar55" identifier = identifier) ;) (if_statement "if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }" if (parenthesized_expression "((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       ))" ( (binary_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" (parenthesized_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55))" ( (binary_expression "pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)" identifier < (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) )) && (parenthesized_expression "((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" ( (parenthesized_expression "(pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))" ( (binary_expression "pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" (binary_expression "pEVar42 < pEVar28" identifier < identifier) || (parenthesized_expression "(uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" ( (comma_expression "uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (assignment_expression "uVar54 = uVar55 - 2" identifier = (binary_expression "uVar55 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar54 = uVar55 - 1;\n    }" { (expression_statement "uVar54 = uVar55 - 1;" (assignment_expression "uVar54 = uVar55 - 1" identifier = (binary_expression "uVar55 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar54 = uVar6 << 0x10 | uVar54;" (assignment_expression "uVar54 = uVar6 << 0x10 | uVar54" identifier = (binary_expression "uVar6 << 0x10 | uVar54" (binary_expression "uVar6 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" ( (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1" (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * uVar54" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar7 < pEVar34)" ( (binary_expression "pEVar7 < pEVar34" identifier < identifier) )) (compound_statement "{\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar6 = pEVar7 < pEVar28 ^ 1;" (assignment_expression "uVar6 = pEVar7 < pEVar28 ^ 1" identifier = (binary_expression "pEVar7 < pEVar28 ^ 1" (binary_expression "pEVar7 < pEVar28" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar42 = pEVar28;" (assignment_expression "pEVar42 = pEVar28" identifier = identifier) ;) (if_statement "if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar54 = (uVar54 - 1) - uVar6;" (assignment_expression "uVar54 = (uVar54 - 1) - uVar6" identifier = (binary_expression "(uVar54 - 1) - uVar6" (parenthesized_expression "(uVar54 - 1)" ( (binary_expression "uVar54 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" ( (binary_expression "(int)pEVar7 + (-(int)pEVar42 - (int)pEVar28)" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar42 - (int)pEVar28)" ( (binary_expression "-(int)pEVar42 - (int)pEVar28" (unary_expression "-(int)pEVar42" - (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar42 = (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 "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" ( (binary_expression "pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2)" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar7->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar7->e_ident_magic_str + -2)" ( (binary_expression "pEVar7->e_ident_magic_str + -2" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" identifier = identifier) ;) (if_statement "if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }" if (parenthesized_expression "(((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7))" ( (binary_expression "(pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" (parenthesized_expression "(pEVar7 < pEVar42)" ( (binary_expression "pEVar7 < pEVar42" identifier < identifier) )) && (parenthesized_expression "(uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" ( (comma_expression "uVar6 = uVar54 - 1, pEVar28 <= pEVar7" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) , (binary_expression "pEVar28 <= pEVar7" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar28 < pEVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar28 < pEVar7)" ( (binary_expression "pEVar28 < pEVar7" identifier < identifier) ))))) , (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar34 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar34 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar6 = uVar54 - 2;\n    }" { (expression_statement "uVar6 = uVar54 - 2;" (assignment_expression "uVar6 = uVar54 - 2" identifier = (binary_expression "uVar54 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar36 + -0x44) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x44) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x44)" * (cast_expression "(uint *)(puVar36 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x44)" ( (binary_expression "puVar36 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar7;" (assignment_expression "pEVar41 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 8" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar41 <= (int)pEVar10)" ( (binary_expression "(int)pEVar41 <= (int)pEVar10" (cast_expression "(int)pEVar41" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar7 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 != (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 **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar36 + -0x70)" * (cast_expression "(uint *)(puVar36 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" identifier = (pointer_expression "*(int **)(puVar36 + -0x40)" * (cast_expression "(int **)(puVar36 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar39 == (int *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(piVar39 == (int *)0x0)" ( (binary_expression "piVar39 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(int *)(puVar36 + -0x50) + 4;" (assignment_expression "uVar6 = *(int *)(puVar36 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar36 + -0x50) + 4" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar6 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar36 + -0x70) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x70) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x70)" * (cast_expression "(uint *)(puVar36 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\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      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" identifier = (call_expression "(*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" * (cast_expression "(undefined4 *)(puVar36 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);" (assignment_expression "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -100) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -100) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -100)" * (cast_expression "(undefined4 *)(puVar36 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" else (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -100)" * (cast_expression "(undefined1 **)(puVar36 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }))) (expression_statement "iVar8 = *(int *)(puVar36 + -100);" (assignment_expression "iVar8 = *(int *)(puVar36 + -100)" identifier = (pointer_expression "*(int *)(puVar36 + -100)" * (cast_expression "(int *)(puVar36 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x14)" * (cast_expression "(undefined1 **)(puVar49 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar42;" (assignment_expression "pEVar28 = pEVar42" identifier = identifier) ;) (expression_statement "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);" (call_expression "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44)" identifier (argument_list "(iVar8,pEVar42,pEVar41,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar10;" (assignment_expression "pEVar41 = pEVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" if (parenthesized_expression "(*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0)" ( (binary_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0" (pointer_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50))" * (cast_expression "(int *)(iVar8 + *(int *)(puVar36 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(puVar36 + -0x50))" ( (binary_expression "iVar8 + *(int *)(puVar36 + -0x50)" identifier + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" { (expression_statement "iVar8 = iVar8 + *(int *)(puVar36 + -0x70);" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar36 + -0x70)" identifier = (binary_expression "iVar8 + *(int *)(puVar36 + -0x70)" identifier + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);" do (compound_statement "{\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar41 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar41 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar39 = (int *)(iVar8 + -8);" (assignment_expression "piVar39 = (int *)(iVar8 + -8)" identifier = (cast_expression "(int *)(iVar8 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -8)" ( (binary_expression "iVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 << 3)" ( (binary_expression "(int)pEVar10 << 3" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar39 == 0)" ( (binary_expression "*piVar39 == 0" (pointer_expression "*piVar39" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar10 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar10 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar10 * 8 + 4U" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -((int)pEVar10 * 8 + 8);" (assignment_expression "iVar8 = -((int)pEVar10 * 8 + 8)" identifier = (unary_expression "-((int)pEVar10 * 8 + 8)" - (parenthesized_expression "((int)pEVar10 * 8 + 8)" ( (binary_expression "(int)pEVar10 * 8 + 8" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar8 + 0x18)" ( (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" else (compound_statement "{\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\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      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" { (expression_statement "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" * (cast_expression "(undefined4 *)(puVar36 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" if (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 8U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -0x74)" * (cast_expression "(undefined1 **)(puVar36 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" else (compound_statement "{\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" { (expression_statement "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x74) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -0x74) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar35 = *(undefined4 **)(puVar36 + -100);" (assignment_expression "puVar35 = *(undefined4 **)(puVar36 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar36 + -100)" * (cast_expression "(undefined4 **)(puVar36 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) (if_statement "if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" ( (binary_expression "puVar20 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      }" { (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" * (cast_expression "(Elf32_Ehdr **)pEVar40" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar41[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" * (cast_expression "(Elf32_Ehdr **)pEVar40" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar30 >> 1) - 1" (parenthesized_expression "((uint)pEVar30 >> 1)" ( (binary_expression "(uint)pEVar30 >> 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar8 = 0x1f - (int)pEVar24;" (assignment_expression "iVar8 = 0x1f - (int)pEVar24" identifier = (binary_expression "0x1f - (int)pEVar24" number_literal - (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pEVar16 = pEVar41;" (assignment_expression "pEVar16 = pEVar41" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }" { (if_statement "if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" if (parenthesized_expression "(pEVar10 == pEVar41)" ( (binary_expression "pEVar10 == pEVar41" identifier == identifier) )) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" { (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" identifier = (binary_expression "*(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        }" { (expression_statement "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -4)" ( (binary_expression "iVar8 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28)" ( (binary_expression "*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28" (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" { (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;" if (parenthesized_expression "(pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4))" ( (binary_expression "pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031264;" goto statement_identifier ;)) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;) })) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar20 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar28 = pEVar5;" statement_identifier : (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;)) (expression_statement "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);" (call_expression "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" else (compound_statement "{\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" { (expression_statement "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 8)" ( (binary_expression "puVar36 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" ( (binary_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1" (parenthesized_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f))" ( (binary_expression "(int)pEVar30 << ((uint)pEVar24 & 0x1f)" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "((uint)pEVar24 & 0x1f)" ( (binary_expression "(uint)pEVar24 & 0x1f" (cast_expression "(uint)pEVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;" (assignment_expression "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (pointer_expression "*(char **)(puVar36 + -0x80)" * (cast_expression "(char **)(puVar36 + -0x80)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) )))) = (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar36 + -0x7c)" * (cast_expression "(int *)(puVar36 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(pcVar51 + -0x7fcc)" * (cast_expression "(int *)(pcVar51 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + -0x7fcc)" ( (binary_expression "pcVar51 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar36 + -0x60)" * (cast_expression "(undefined4 *)(puVar36 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);" do (compound_statement "{\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      }" { (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);" (call_expression "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7cac))" ( (pointer_expression "**(code **)(pcVar51 + -0x7cac)" * (pointer_expression "*(code **)(pcVar51 + -0x7cac)" * (cast_expression "(code **)(pcVar51 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7cac)" ( (binary_expression "pcVar51 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar42,pEVar5,pEVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1" (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (parenthesized_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60))" ( (binary_expression "(int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }" { (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" { (expression_statement "uVar32._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar32._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar32._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar32._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar32._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar32._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar32._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar32._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar32._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar32._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar32._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar32._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar32 = *(undefined4 *)pbVar14;" (assignment_expression "uVar32 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" identifier = (cast_expression "(byte *)pEVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" else (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar36 + -0x7c)" * (cast_expression "(code **)(puVar36 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar22._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar22._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar22._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" else (compound_statement "{\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" { (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(undefined4 *)pbVar14;" (assignment_expression "uVar22 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar16;" (assignment_expression "pbVar14 = (byte *)pEVar16" identifier = (cast_expression "(byte *)pEVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = uVar22;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = uVar22" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" * (cast_expression "(undefined4 **)(puVar36 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) (if_statement "if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" if (parenthesized_expression "((int)pEVar24 < 0)" ( (binary_expression "(int)pEVar24 < 0" (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -100);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -100)" * (cast_expression "(undefined4 *)(puVar36 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);" (call_expression "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(pEVar42,pEVar5,pEVar16,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" ( (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1)" (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "(-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" ( (binary_expression "-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" number_literal - (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" ( (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" ( (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar41->e_ident_magic_str * 4" (cast_expression "(int)pEVar41->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + number_literal) )))) == number_literal) )))) ))) + (cast_expression "(int)(pEVar41->e_ident_magic_str + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar41->e_ident_magic_str + -1)" ( (binary_expression "pEVar41->e_ident_magic_str + -1" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }" { (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" { (expression_statement "uVar33._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar33._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar33._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar33._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar33._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar33._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar33._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar33._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar33._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar33._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar33._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar33._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar33 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x18)" ( (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x10)" ( (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 8)" ( (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar33" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" else (compound_statement "{\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" { (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar33 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x18)" ( (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x10)" ( (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 8)" ( (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar33" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar33 = *(undefined4 *)pbVar14;" (assignment_expression "uVar33 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" identifier = (cast_expression "(byte *)pEVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;" (assignment_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33" (pointer_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" else (compound_statement "{\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar36 + -0x7c)" * (cast_expression "(code **)(puVar36 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar42;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar42" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar42" * (cast_expression "(Elf32_Ehdr **)pEVar42" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar28" (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 "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar27 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar27 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar27" * (cast_expression "(Elf32_Ehdr **)pEVar27" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = pEVar28;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = pEVar28" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" * (cast_expression "(undefined4 **)(puVar36 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar24 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar24 << 1)" ( (binary_expression "(int)pEVar24 << 1" (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 8)" ( (binary_expression "puVar36 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;" statement_identifier : (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)) ;)) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" statement_identifier : (if_statement "if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" if (parenthesized_expression "((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0))" ( (binary_expression "(0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)pEVar16)" ( (binary_expression "0 < (int)pEVar16" number_literal < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" ( (binary_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" * (cast_expression "(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" { (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);" do (compound_statement "{\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" ( (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" ( (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" identifier = (cast_expression "(char *)(pbVar14 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar18 == 0)" ( (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) }))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" if (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" ( (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" ( (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);" statement_identifier : (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar39 < (int)pEVar16) goto LAB_00031474;" if (parenthesized_expression "(*piVar39 < (int)pEVar16)" ( (binary_expression "*piVar39 < (int)pEVar16" (pointer_expression "*piVar39" * identifier) < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" statement_identifier : (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" else (compound_statement "{\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" { (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x68) + 8" (pointer_expression "*(int *)(puVar36 + -0x68)" * (cast_expression "(int *)(puVar36 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x68)" ( (binary_expression "puVar36 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar28 = pEVar24;" (assignment_expression "pEVar28 = pEVar24" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);" (assignment_expression "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7b2c))" ( (pointer_expression "**(code **)(pcVar51 + -0x7b2c)" * (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar24,pEVar5,pEVar16)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" statement_identifier : (if_statement "if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" if (parenthesized_expression "((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16))" ( (binary_expression "(pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)" (parenthesized_expression "(pEVar5 == pEVar24)" ( (binary_expression "pEVar5 == pEVar24" identifier == identifier) )) || (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" ( (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);" do (compound_statement "{\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          }" { (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)pbVar15)" ( (binary_expression "pEVar28 != (Elf32_Ehdr *)pbVar15" identifier != (cast_expression "(Elf32_Ehdr *)pbVar15" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" identifier = (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" else (compound_statement "{\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" { (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pbVar14;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pbVar14" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar14" * (cast_expression "(Elf32_Ehdr **)pbVar14" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar15" * (cast_expression "(undefined1 **)pbVar15" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar28[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar28[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar28[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shstrndx" & (field_expression "pEVar28[-1].e_shstrndx" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar27 = pEVar28;" (assignment_expression "pEVar27 = pEVar28" identifier = identifier) ;) (while_statement "while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" while (parenthesized_expression "(pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)" ( (comma_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0" (assignment_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar16->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier))) , (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              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar10 == pEVar16) goto LAB_00031130;" if (parenthesized_expression "(pEVar10 == pEVar16)" ( (binary_expression "pEVar10 == pEVar16" identifier == identifier) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar27[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar27[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar27[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27[-1].e_shstrndx" & (field_expression "pEVar27[-1].e_shstrndx" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" identifier = (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar5->e_ident_magic_str + iVar8" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar13._0_1_ = pEVar27->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar27->e_ident_magic_num" (field_expression "iVar13._0_1_" identifier . field_identifier) = (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar13._1_1_ = pEVar27->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar27->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._2_1_ = pEVar27->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar27->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._3_1_ = pEVar27->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar27->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" { (expression_statement "iVar8 = *(int *)(puVar36 + -0x78);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x78)" identifier = (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (do_statement "do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);" do (compound_statement "{\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          }" { (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" identifier = (cast_expression "(char *)(pbVar14 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar18 == 0)" ( (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) (expression_statement "*(int *)(puVar36 + -0x78) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x78) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78))" ( (binary_expression "**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)" (pointer_expression "**(int **)(puVar36 + -0x54)" * (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar28 = pEVar16;" statement_identifier : (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;)) (expression_statement "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54));" (call_expression "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54))" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(*(undefined4 *)(puVar36 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar36 + -0x54)" * (cast_expression "(undefined4 *)(puVar36 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar5;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar5" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);" (assignment_expression "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 8" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar35 = puVar31;" (assignment_expression "puVar35 = puVar31" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar5;" (assignment_expression "pEVar30 = pEVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        }" { (expression_statement "*puVar35 = pEVar28;" (assignment_expression "*puVar35 = pEVar28" (pointer_expression "*puVar35" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;" (assignment_expression "pEVar28 = *(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 "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (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 "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar31 = pEVar28;" (assignment_expression "*puVar31 = pEVar28" (pointer_expression "*puVar31" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);" (assignment_expression "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar42,pEVar5,pEVar16,pEVar40)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" identifier = (pointer_expression "*(int *)(puVar36 + -0x88)" * (cast_expression "(int *)(puVar36 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (int)pEVar16 * 4;" (assignment_expression "iVar8 = (int)pEVar16 * 4" identifier = (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" ( (binary_expression "pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1)" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar37 != 0) - 1)" ( (binary_expression "(iVar37 != 0) - 1" (parenthesized_expression "(iVar37 != 0)" ( (binary_expression "iVar37 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;" (assignment_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar42->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar42->e_ident_magic_str + iVar8" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pEVar24 = pEVar40;" (assignment_expression "pEVar24 = pEVar40" identifier = identifier) ;) (if_statement "if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" ( (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10)" identifier (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" identifier = (pointer_expression "*(int *)(puVar36 + -0x88)" * (cast_expression "(int *)(puVar36 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar25._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" else (compound_statement "{\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" { (do_statement "do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" { (expression_statement "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar16->e_ident_magic_str[0]" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar16->e_ident_magic_str[1]" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar16->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar16->e_ident_magic_str[2]" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar25._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar25._0_1_ = pEVar40->e_ident_class" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar25._1_1_ = pEVar40->e_ident_data" (field_expression "uVar25._1_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar25._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar25._2_1_ = pEVar40->e_ident_version" (field_expression "uVar25._2_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar25._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar25._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar25._3_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;" (assignment_expression "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar16->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar16->e_ident_class" & (field_expression "pEVar16->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;" (assignment_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25" (pointer_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" * (cast_expression "(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar28 = pEVar5;" statement_identifier : (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar26 + -0x7ae0)" * (pointer_expression "*(code **)(iVar26 + -0x7ae0)" * (cast_expression "(code **)(iVar26 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7ae0)" ( (binary_expression "iVar26 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" * (cast_expression "(undefined4 *)(puVar36 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar29._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar29._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar29._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar29._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar29._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar29._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar29._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar29._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar29._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar29._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" { (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar29._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar29._0_1_ = pEVar40->e_ident_class" (field_expression "uVar29._0_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar29._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar29._1_1_ = pEVar40->e_ident_data" (field_expression "uVar29._1_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar29._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar29._2_1_ = pEVar40->e_ident_version" (field_expression "uVar29._2_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar29._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar29._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar29._3_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40)" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar26 + -0x7ae0)" * (pointer_expression "*(code **)(iVar26 + -0x7ae0)" * (cast_expression "(code **)(iVar26 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7ae0)" ( (binary_expression "iVar26 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar5,0,pEVar40)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar39 < 0)" ( (binary_expression "*piVar39 < 0" (pointer_expression "*piVar39" * identifier) < number_literal) )) (compound_statement "{\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }" { (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (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 "(**(code **)(pcVar51 + -0x7a84))(pEVar24);" (call_expression "(**(code **)(pcVar51 + -0x7a84))(pEVar24)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7a84))" ( (pointer_expression "**(code **)(pcVar51 + -0x7a84)" * (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(pEVar24)" ( identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar24->e_ident_class = 0;" (assignment_expression "pEVar24->e_ident_class = 0" (field_expression "pEVar24->e_ident_class" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_data = 0;" (assignment_expression "pEVar24->e_ident_data = 0" (field_expression "pEVar24->e_ident_data" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_version = 0;" (assignment_expression "pEVar24->e_ident_version = 0" (field_expression "pEVar24->e_ident_version" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_osabi = 0;" (assignment_expression "pEVar24->e_ident_osabi = 0" (field_expression "pEVar24->e_ident_osabi" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" identifier = (pointer_expression "*(int **)(puVar36 + -0x40)" * (cast_expression "(int **)(puVar36 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" identifier = (pointer_expression "*(int **)(puVar36 + -0x58)" * (cast_expression "(int **)(puVar36 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar46 + 0x66c10);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + 0x66c10)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x66c10)" * (cast_expression "(code **)(pcVar46 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66c10)" ( (binary_expression "pcVar46 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x3c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x3c)" ( (binary_expression "puVar36 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar36 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar36 + -0x34)" * (cast_expression "(undefined4 *)(puVar36 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x34)" ( (binary_expression "puVar36 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c" (pointer_expression "*(undefined1 **)(puVar36 + -0x30)" * (cast_expression "(undefined1 **)(puVar36 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x30)" ( (binary_expression "puVar36 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);" statement_identifier : (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" identifier = (pointer_expression "*(int **)(puVar36 + -0x58)" * (cast_expression "(int **)(puVar36 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }" if (parenthesized_expression "(*(int *)(puVar36 + -0x2c) == *piVar12)" ( (binary_expression "*(int *)(puVar36 + -0x2c) == *piVar12" (pointer_expression "*(int *)(puVar36 + -0x2c)" * (cast_expression "(int *)(puVar36 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x2c)" ( (binary_expression "puVar36 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return *piVar12;\n  }" { (return_statement "return *piVar12;" return (pointer_expression "*piVar12" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b70)" * (cast_expression "(code **)(pcVar51 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b70)" ( (binary_expression "pcVar51 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = 0x3153c;" (assignment_expression "uVar44 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6db00;" (assignment_expression "pcVar46 = pcVar51 + 0x6db00" identifier = (binary_expression "pcVar51 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x10)" ( (binary_expression "puVar49 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar12 = *(int **)(pcVar51 + 0x66000);" (assignment_expression "piVar12 = *(int **)(pcVar51 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x66000)" * (cast_expression "(int **)(pcVar51 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66000)" ( (binary_expression "pcVar51 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0" (pointer_expression "*(undefined1 **)(puVar49 + -8)" * (cast_expression "(undefined1 **)(puVar49 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -8)" ( (binary_expression "puVar49 + -8" identifier + number_literal) )))) = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x14)" ( (binary_expression "puVar49 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x18)" ( (binary_expression "puVar49 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar49 + -4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar49 + -4) = uVar44" (pointer_expression "*(undefined4 *)(puVar49 + -4)" * (cast_expression "(undefined4 *)(puVar49 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -4)" ( (binary_expression "puVar49 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0xc)" ( (binary_expression "puVar49 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar49 + -0x28) = pcVar46;" (assignment_expression "*(code **)(puVar49 + -0x28) = pcVar46" (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar49 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar49 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar28" (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 (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }" { (if_statement "if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" if (parenthesized_expression "(*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1))" ( (binary_expression "*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" (pointer_expression "*piVar39" * identifier) < (cast_expression "(int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" ( (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1" (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6)" (parenthesized_expression "((uint)pEVar28 >> 5)" ( (binary_expression "(uint)pEVar28 >> 5" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar28 >> 6)" ( (binary_expression "(uint)pEVar28 >> 6" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();" (assignment_expression "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar51 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar51 + 0x6607c)" * (pointer_expression "*(code **)(pcVar51 + 0x6607c)" * (cast_expression "(code **)(pcVar51 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x6607c)" ( (binary_expression "pcVar51 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" else (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)piVar39[2];" (assignment_expression "pEVar41 = (Elf32_Ehdr *)piVar39[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar39[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" identifier = (call_expression "(**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar46 + -0x7efc)" * (pointer_expression "*(code **)(pcVar46 + -0x7efc)" * (cast_expression "(code **)(pcVar46 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7efc)" ( (binary_expression "pcVar46 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar41,pEVar28)" ( identifier , identifier )))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar46 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar46 + -0x7c6c)" * (cast_expression "(int *)(pcVar46 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + -0x7c6c)" ( (binary_expression "pcVar46 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar6 = 8;" (assignment_expression "uVar6 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);" do (compound_statement "{\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    }" { (expression_statement "uVar54 = uVar6;" (assignment_expression "uVar54 = uVar6" identifier = identifier) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "puVar35 = puVar35 + -1;" (assignment_expression "puVar35 = puVar35 + -1" identifier = (binary_expression "puVar35 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar40 < pEVar28)" ( (binary_expression "pEVar40 < pEVar28" identifier < identifier) )) ;) (if_statement "if (uVar54 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar54 == 0)" ( (binary_expression "uVar54 == 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 "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;" (assignment_expression "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4" identifier = (binary_expression "((iVar8 + 1U) / uVar54 + 1) * 4" (parenthesized_expression "((iVar8 + 1U) / uVar54 + 1)" ( (binary_expression "(iVar8 + 1U) / uVar54 + 1" (binary_expression "(iVar8 + 1U) / uVar54" (parenthesized_expression "(iVar8 + 1U)" ( (binary_expression "iVar8 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar49 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar49 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar49 + -0x20)" * (cast_expression "(undefined4 *)(puVar49 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar9 = puVar49 + iVar8 + -0x38;" (assignment_expression "puVar9 = puVar49 + iVar8 + -0x38" identifier = (binary_expression "puVar49 + iVar8 + -0x38" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar8 + -0x28)" ( (binary_expression "puVar49 + iVar8 + -0x28" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar46 + -0x7d50)" * (pointer_expression "*(code **)(pcVar46 + -0x7d50)" * (cast_expression "(code **)(pcVar46 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7d50)" ( (binary_expression "pcVar46 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar55 = 1;" (assignment_expression "uVar55 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar54 = 6;" (assignment_expression "uVar54 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);" do (compound_statement "{\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    }" { (expression_statement "uVar53 = uVar6 + 1;" (assignment_expression "uVar53 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar8;" (assignment_expression "iVar26 = iVar8" identifier = identifier) ;) (expression_statement "uVar17 = uVar54;" (assignment_expression "uVar17 = uVar54" identifier = identifier) ;) (if_statement "if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" if (parenthesized_expression "((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0)" ( (binary_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0" (parenthesized_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1))" ( (binary_expression "uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" * (cast_expression "(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" ( (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4 + -1" (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar37 * 4" identifier * number_literal)) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" { (expression_statement "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;" (assignment_expression "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3" identifier = (binary_expression "(uVar53 & 1) + 1 + uVar53 * 3" (binary_expression "(uVar53 & 1) + 1" (parenthesized_expression "(uVar53 & 1)" ( (binary_expression "uVar53 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar53 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" ( (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20" (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar28)" identifier (argument_list "(pEVar28)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar17 = uVar54 * uVar17;\n        }" { (expression_statement "uVar17 = uVar54 * uVar17;" (assignment_expression "uVar17 = uVar54 * uVar17" identifier = (binary_expression "uVar54 * uVar17" identifier * identifier)) ;) }) (else_clause "else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" else (compound_statement "{\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" { (expression_statement "iVar26 = iVar8 + 1;" (assignment_expression "iVar26 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" * (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" ( (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar8 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);" (assignment_expression "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f)" identifier = (binary_expression "uVar55 * 2 - ((int)uVar55 >> 0x1f)" (binary_expression "uVar55 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar55 >> 0x1f)" ( (binary_expression "(int)uVar55 >> 0x1f" (cast_expression "(int)uVar55" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar28[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar28[-1].e_shentsize + 1" (cast_expression "(int)&pEVar28[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shentsize" & (field_expression "pEVar28[-1].e_shentsize" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar37 = iVar37 + (uVar55 & 1);" (assignment_expression "iVar37 = iVar37 + (uVar55 & 1)" identifier = (binary_expression "iVar37 + (uVar55 & 1)" identifier + (parenthesized_expression "(uVar55 & 1)" ( (binary_expression "uVar55 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar8 = iVar26;" (assignment_expression "iVar8 = iVar26" identifier = identifier) ;) (expression_statement "uVar6 = uVar53;" (assignment_expression "uVar6 = uVar53" identifier = identifier) ;) (expression_statement "uVar54 = uVar17;" (assignment_expression "uVar54 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }" { (expression_statement "*(uint *)piVar39[2] = uVar17;" (assignment_expression "*(uint *)piVar39[2] = uVar17" (pointer_expression "*(uint *)piVar39[2]" * (cast_expression "(uint *)piVar39[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7dbc);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7dbc)" * (cast_expression "(code **)(pcVar46 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7dbc)" ( (binary_expression "pcVar46 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" * (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" ( (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar51)(piVar39,pEVar40,iVar26 + 1);" (call_expression "(*pcVar51)(piVar39,pEVar40,iVar26 + 1)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(piVar39,pEVar40,iVar26 + 1)" ( identifier , identifier , (binary_expression "iVar26 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar43 = *(int **)(puVar49 + -0x20);" (assignment_expression "piVar43 = *(int **)(puVar49 + -0x20)" identifier = (pointer_expression "*(int **)(puVar49 + -0x20)" * (cast_expression "(int **)(puVar49 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(piVar43 != (int *)0x0)" ( (binary_expression "piVar43 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar46 + -0x7a2c))();" (call_expression "(**(code **)(pcVar46 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar46 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar46 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar46 + -0x7a2c)" * (cast_expression "(code **)(pcVar46 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7a2c)" ( (binary_expression "pcVar46 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c)" (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar51 + 0x65b2c)" * (cast_expression "(int *)(pcVar51 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x65b2c)" ( (binary_expression "pcVar51 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar39[2]" * (cast_expression "(undefined4 *)piVar39[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar27" * (cast_expression "(undefined4 *)pEVar27" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar43 = piVar39;" (assignment_expression "piVar43 = piVar39" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar28;" (assignment_expression "pEVar40 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar27;" (assignment_expression "pEVar28 = pEVar27" identifier = identifier) ;) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }" if (parenthesized_expression "(*(int *)(puVar49 + -0x1c) == *piVar12)" ( (binary_expression "*(int *)(puVar49 + -0x1c) == *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return *piVar12;\n  }" { (return_statement "return *piVar12;" return (pointer_expression "*piVar12" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7b70)" * (cast_expression "(code **)(pcVar46 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7b70)" ( (binary_expression "pcVar46 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_probab_prime_p;" (assignment_expression "pcVar52 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x659a8);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x659a8)" * (cast_expression "(code **)(pcVar51 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x659a8)" ( (binary_expression "pcVar51 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar9 + -0x24) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x24) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x24)" * (cast_expression "(int **)(puVar9 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x20) = piVar12;" (assignment_expression "*(int **)(puVar9 + -0x20) = piVar12" (pointer_expression "*(int **)(puVar9 + -0x20)" * (cast_expression "(int **)(puVar9 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar39 = *(int **)(pcVar51 + 0x65da0);" (assignment_expression "piVar39 = *(int **)(pcVar51 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x65da0)" * (cast_expression "(int **)(pcVar51 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65da0)" ( (binary_expression "pcVar51 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;" (assignment_expression "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0" (pointer_expression "*(code **)(puVar9 + -0x90)" * (cast_expression "(code **)(puVar9 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar51 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x28)" ( (binary_expression "puVar9 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar52" (pointer_expression "*(code **)(puVar9 + -4)" * (cast_expression "(code **)(puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38" (pointer_expression "*(undefined1 **)(puVar9 + -8)" * (cast_expression "(undefined1 **)(puVar9 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "iVar8 = (*pcVar46)();" (assignment_expression "iVar8 = (*pcVar46)()" identifier = (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar19 = (uint *)piVar43[2];" (assignment_expression "puVar19 = (uint *)piVar43[2]" identifier = (cast_expression "(uint *)piVar43[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar43[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)piVar43[1];" (assignment_expression "pEVar10 = (Elf32_Ehdr *)piVar43[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar43[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar43[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (if_statement "if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43)" identifier = (call_expression "(**(code **)(iVar37 + -0x7ab8))(piVar43)" (parenthesized_expression "(**(code **)(iVar37 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar37 + -0x7ab8)" * (pointer_expression "*(code **)(iVar37 + -0x7ab8)" * (cast_expression "(code **)(iVar37 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7ab8)" ( (binary_expression "iVar37 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(piVar43)" ( identifier )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" if (parenthesized_expression "(uVar6 < 3)" ( (binary_expression "uVar6 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 != 2) {\n            iVar8 = 0;\n          }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar8 = 0;\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" else (compound_statement "{\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" { (expression_statement "uVar54 = 3;" (assignment_expression "uVar54 = 3" identifier = number_literal) ;) (if_statement "if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" if (parenthesized_expression "((uVar6 & 1) != 0)" ( (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" { (do_statement "do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);" do (compound_statement "{\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            }" { (if_statement "if (uVar54 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar54 == 0)" ( (binary_expression "uVar54 == 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 "uVar55 = uVar6 % uVar54;" (assignment_expression "uVar55 = uVar6 % uVar54" identifier = (binary_expression "uVar6 % uVar54" identifier % identifier)) ;) (if_statement "if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" if (parenthesized_expression "(uVar6 / uVar54 < uVar54)" ( (binary_expression "uVar6 / uVar54 < uVar54" (binary_expression "uVar6 / uVar54" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "uVar54 = uVar54 + 2;" (assignment_expression "uVar54 = uVar54 + 2" identifier = (binary_expression "uVar54 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar55 != 0)" ( (binary_expression "uVar55 != 0" identifier != number_literal) )) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar10" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar10" - (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar9 + -0x6c) = puVar19;" (assignment_expression "*(uint **)(puVar9 + -0x6c) = puVar19" (pointer_expression "*(uint **)(puVar9 + -0x6c)" * (cast_expression "(uint **)(puVar9 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x6c)" ( (binary_expression "puVar9 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar43 = (int *)(puVar9 + -0x74);" (assignment_expression "piVar43 = (int *)(puVar9 + -0x74)" identifier = (cast_expression "(int *)(puVar9 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x74)" ( (binary_expression "puVar9 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x70)" ( (binary_expression "puVar9 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" if (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" { (expression_statement "uVar6 = uVar6 & 1;" (assignment_expression "uVar6 = uVar6 & 1" identifier = (binary_expression "uVar6 & 1" identifier & number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (uVar6 == 0) goto LAB_00031824;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" identifier = identifier) ;) (if_statement "if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar10 < 10)" ( (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c24))" ( (pointer_expression "**(code **)(iVar37 + -0x7c24)" * (pointer_expression "*(code **)(iVar37 + -0x7c24)" * (cast_expression "(code **)(iVar37 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7c24)" ( (binary_expression "iVar37 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" else (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar37 + -0x7b80))" ( (pointer_expression "**(code **)(iVar37 + -0x7b80)" * (pointer_expression "*(code **)(iVar37 + -0x7b80)" * (cast_expression "(code **)(iVar37 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7b80)" ( (binary_expression "iVar37 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" if (parenthesized_expression "((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))))" ( (binary_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7))" ( (binary_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)" (parenthesized_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5))" ( (binary_expression "(uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)" (parenthesized_expression "(uVar54 != (uVar54 / 3) * 3)" ( (binary_expression "uVar54 != (uVar54 / 3) * 3" identifier != (binary_expression "(uVar54 / 3) * 3" (parenthesized_expression "(uVar54 / 3)" ( (binary_expression "uVar54 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar54 != (uVar54 / 5) * 5)" ( (binary_expression "uVar54 != (uVar54 / 5) * 5" identifier != (binary_expression "(uVar54 / 5) * 5" (parenthesized_expression "(uVar54 / 5)" ( (binary_expression "uVar54 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 7) * 7)" ( (binary_expression "uVar54 != (uVar54 / 7) * 7" identifier != (binary_expression "(uVar54 / 7) * 7" (parenthesized_expression "(uVar54 / 7)" ( (binary_expression "uVar54 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))" ( (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)" (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb" identifier != (binary_expression "(uVar54 / 0xb) * 0xb" (parenthesized_expression "(uVar54 / 0xb)" ( (binary_expression "uVar54 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0xd) * 0xd)" ( (binary_expression "uVar54 != (uVar54 / 0xd) * 0xd" identifier != (binary_expression "(uVar54 / 0xd) * 0xd" (parenthesized_expression "(uVar54 / 0xd)" ( (binary_expression "uVar54 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))" ( (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11" identifier != (binary_expression "(uVar54 / 0x11) * 0x11" (parenthesized_expression "(uVar54 / 0x11)" ( (binary_expression "uVar54 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))" ( (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)" (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13" identifier != (binary_expression "(uVar54 / 0x13) * 0x13" (parenthesized_expression "(uVar54 / 0x13)" ( (binary_expression "uVar54 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0x17) * 0x17)" ( (binary_expression "uVar54 != (uVar54 / 0x17) * 0x17" identifier != (binary_expression "(uVar54 / 0x17) * 0x17" (parenthesized_expression "(uVar54 / 0x17)" ( (binary_expression "uVar54 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 0x1d) * 0x1d)" ( (binary_expression "uVar54 != (uVar54 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar54 / 0x1d) * 0x1d" (parenthesized_expression "(uVar54 / 0x1d)" ( (binary_expression "uVar54 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2)" identifier = (call_expression "(**(code **)(iVar37 + -0x7f14))(piVar43,2)" (parenthesized_expression "(**(code **)(iVar37 + -0x7f14))" ( (pointer_expression "**(code **)(iVar37 + -0x7f14)" * (pointer_expression "*(code **)(iVar37 + -0x7f14)" * (cast_expression "(code **)(iVar37 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7f14)" ( (binary_expression "iVar37 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar43,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar54)" ( (binary_expression "0x1f < uVar54" number_literal < identifier) )) (compound_statement "{\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "puVar36 = puVar9 + -0x68;" (assignment_expression "puVar36 = puVar9 + -0x68" identifier = (binary_expression "puVar9 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar55 = 0x1f;" (assignment_expression "uVar55 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar17 = 3;" statement_identifier : (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);" do (compound_statement "{\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        }" { (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "uVar53 = uVar55 % uVar17;" (assignment_expression "uVar53 = uVar55 % uVar17" identifier = (binary_expression "uVar55 % uVar17" identifier % identifier)) ;) (if_statement "if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar55 / uVar17 < uVar17)" ( (binary_expression "uVar55 / uVar17 < uVar17" (binary_expression "uVar55 / uVar17" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0)" ( (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0" (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" (binary_expression "iVar26 * uVar6" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" ( (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20" (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar50 = iVar37 + 1;" (assignment_expression "iVar50 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55)" identifier = (call_expression "(uint)((ulonglong)uVar6 * (ulonglong)uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar6 * (ulonglong)uVar55)" ( (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar9 + -0x7c) = puVar36;" (assignment_expression "*(undefined1 **)(puVar9 + -0x7c) = puVar36" (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x80) = iVar26;" (assignment_expression "*(int *)(puVar9 + -0x80) = iVar26" (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar9 + -0x84) = uVar54;" (assignment_expression "*(uint *)(puVar9 + -0x84) = uVar54" (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar10 < 10)" ( (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }" { (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" identifier = (call_expression "(**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" (parenthesized_expression "(**(code **)(iVar8 + -0x7c68))" ( (pointer_expression "**(code **)(iVar8 + -0x7c68)" * (pointer_expression "*(code **)(iVar8 + -0x7c68)" * (cast_expression "(code **)(iVar8 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7c68)" ( (binary_expression "iVar8 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,uVar6,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" identifier = (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" else (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" { (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" identifier = (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" ( (pointer_expression "**(code **)(iVar8 + -0x7b80)" * (pointer_expression "*(code **)(iVar8 + -0x7b80)" * (cast_expression "(code **)(iVar8 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b80)" ( (binary_expression "iVar8 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,uVar6)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" identifier = (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);" (assignment_expression "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + (iVar37 + 0x3fffffff) * 4)" ( (binary_expression "puVar36 + (iVar37 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar37 + 0x3fffffff) * 4" (parenthesized_expression "(iVar37 + 0x3fffffff)" ( (binary_expression "iVar37 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar17 = uVar17 + 2;" (assignment_expression "uVar17 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (expression_statement "iVar50 = iVar37;" (assignment_expression "iVar50 = iVar37" identifier = identifier) ;) }) while (parenthesized_expression "(uVar53 != 0)" ( (binary_expression "uVar53 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" statement_identifier : (expression_statement "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43)" identifier = (call_expression "(**(code **)(iVar8 + -0x7d48))(piVar43)" (parenthesized_expression "(**(code **)(iVar8 + -0x7d48))" ( (pointer_expression "**(code **)(iVar8 + -0x7d48)" * (pointer_expression "*(code **)(iVar8 + -0x7d48)" * (cast_expression "(code **)(iVar8 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7d48)" ( (binary_expression "iVar8 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(piVar43)" ( identifier )))) ;)) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = pEVar40;" (assignment_expression "pEVar27 = pEVar40" identifier = identifier) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);" statement_identifier : (expression_statement "iVar26 = *(int *)(puVar9 + -0x2c);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar26 == *piVar39) {\n    return iVar8;\n  }" if (parenthesized_expression "(iVar26 == *piVar39)" ( (binary_expression "iVar26 == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (labeled_statement "LAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);" statement_identifier : (expression_statement "pcVar51 = *(code **)(iVar37 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar37 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar37 + -0x7b70)" * (cast_expression "(code **)(iVar37 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7b70)" ( (binary_expression "iVar37 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar44 = 0x31c64;" (assignment_expression "uVar44 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6d3d0;" (assignment_expression "pcVar46 = pcVar51 + 0x6d3d0" identifier = (binary_expression "pcVar51 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar18 = *(char **)(pcVar51 + 0x65518);" (assignment_expression "pcVar18 = *(char **)(pcVar51 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar51 + 0x65518)" * (cast_expression "(char **)(pcVar51 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65518)" ( (binary_expression "pcVar51 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar9 + -0xa8) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0xa8) = piVar39" (pointer_expression "*(int **)(puVar9 + -0xa8)" * (cast_expression "(int **)(puVar9 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xa8)" ( (binary_expression "puVar9 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xac)" ( (binary_expression "puVar9 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0xb8) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0xb8) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0xb8)" * (cast_expression "(code **)(puVar9 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xb8)" ( (binary_expression "puVar9 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0xa4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0xa4) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0xa4)" * (cast_expression "(undefined4 *)(puVar9 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xa4)" ( (binary_expression "puVar9 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" { (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x65990);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x65990)" * (cast_expression "(code **)(pcVar51 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65990)" ( (binary_expression "pcVar51 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);" (assignment_expression "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar51 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar51 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x6560c)" ( (binary_expression "pcVar51 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar18 = '\x01';" (assignment_expression "*pcVar18 = '\x01'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar46)(uVar44);" (call_expression "(*pcVar46)(uVar44)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "pcVar46 = *(code **)(puVar9 + -0xb8);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar9 + -0xb8)" * (cast_expression "(code **)(puVar9 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xb8)" ( (binary_expression "puVar9 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n    pEVar10 = (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    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }" { (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar10 = (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 "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" identifier = (call_expression "(**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar46 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar46 + -0x7f7c)" * (cast_expression "(code **)(pcVar46 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7f7c)" ( (binary_expression "pcVar46 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar46 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar46 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + -0x7dc4)" ( (binary_expression "pcVar46 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar10 << 5" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\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    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }" { (expression_statement "iVar8 = -*(int *)(iVar26 + 4);" (assignment_expression "iVar8 = -*(int *)(iVar26 + 4)" identifier = (unary_expression "-*(int *)(iVar26 + 4)" - (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar26 + 4) = iVar8;" (assignment_expression "*(int *)(iVar26 + 4) = iVar8" (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar8;" return identifier ;) (labeled_statement "joined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;" statement_identifier : (if_statement "if (iVar8 != 0) goto LAB_00030180;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;))) (expression_statement "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar5 + 0xffffffcc)" ( (binary_expression "(int)pEVar5 + 0xffffffcc" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;" 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)) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;)) (expression_statement "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;" (assignment_expression "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (field_expression "iVar8._0_2_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" ( (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;" (assignment_expression "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (field_expression "iVar8._2_2_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" ( (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" & (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffcc)" ( (binary_expression "(int)pEVar7 + 0xffffffcc" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)))) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) (labeled_statement "LAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" statement_identifier : (if_statement "if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" if (parenthesized_expression "((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37))" ( (binary_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" (parenthesized_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0)" ( (binary_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0" (parenthesized_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1)" ( (binary_expression "(undefined1  [52])*in_t3 & (undefined1  [52])0x1" (binary_expression "(undefined1  [52])*in_t3" (parenthesized_expression "(undefined1  [52])" ( (subscript_expression "undefined1  [52]" identifier [ number_literal ]) )) * identifier) & (cast_expression "(undefined1  [52])0x1" ( (type_descriptor "undefined1  [52]" type_identifier (abstract_array_declarator "[52]" [ number_literal ])) ) number_literal)) )) == (cast_expression "(undefined1  [52])0x0" ( (type_descriptor "undefined1  [52]" type_identifier (abstract_array_declarator "[52]" [ number_literal ])) ) number_literal)) )) || (parenthesized_expression "(iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" ( (comma_expression "iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._0_1_ = param_2->e_ident_class" (field_expression "iVar37._0_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_class" identifier -> field_identifier)) , (comma_expression "iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._1_1_ = param_2->e_ident_data" (field_expression "iVar37._1_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_data" identifier -> field_identifier)) , (comma_expression "iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._2_1_ = param_2->e_ident_version" (field_expression "iVar37._2_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_version" identifier -> field_identifier)) , (comma_expression "iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._3_1_ = param_2->e_ident_osabi" (field_expression "iVar37._3_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_osabi" identifier -> field_identifier)) , (binary_expression "-1 < iVar37" number_literal < identifier))))) ))) )) (compound_statement "{\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }" { (if_statement "if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" if (parenthesized_expression "(*param_1 < (int)pEVar5)" ( (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" { (labeled_statement "LAB_00030268:\n      pEVar27 = pEVar5;" statement_identifier : (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\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 "{\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }" { (labeled_statement "LAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (expression_statement "pEVar30 = (Elf32_Ehdr *)param_1[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)param_1[2]" identifier = (cast_expression "(Elf32_Ehdr *)param_1[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)unaff_s5;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)unaff_s5" identifier = (pointer_expression "*(Elf32_Ehdr **)unaff_s5" * (cast_expression "(Elf32_Ehdr **)unaff_s5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar24 = pEVar30;" (assignment_expression "pEVar24 = pEVar30" identifier = identifier) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar7 = unaff_s5;" (assignment_expression "pEVar7 = unaff_s5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" { (do_statement "do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        }" { (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar24" * (cast_expression "(Elf32_Ehdr **)pEVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar7->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar24->e_ident_class" & (field_expression "pEVar24->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar5 * 4 + -4)" ( (binary_expression "(int)pEVar5 * 4 + -4" (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar5[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar30 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar30 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar30" * (cast_expression "(Elf32_Ehdr **)pEVar30" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) }) (else_clause "else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" { (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\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      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }" { (expression_statement "param_2 = *(Elf32_Ehdr **)(param_4 + 8);" (assignment_expression "param_2 = *(Elf32_Ehdr **)(param_4 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(param_4 + 8)" * (cast_expression "(Elf32_Ehdr **)(param_4 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = param_2;" (assignment_expression "pEVar27 = param_2" identifier = identifier) ;) (expression_statement "pEVar30 = unaff_s5;" (assignment_expression "pEVar30 = unaff_s5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" { (labeled_statement "LAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" statement_identifier : (if_statement "if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" if (parenthesized_expression "((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5))" ( (binary_expression "(param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)" (parenthesized_expression "(param_2 == unaff_s5)" ( (binary_expression "param_2 == unaff_s5" identifier == identifier) )) || (parenthesized_expression "((int)pEVar10 <= (int)pEVar5)" ( (binary_expression "(int)pEVar10 <= (int)pEVar5" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;))) (expression_statement "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;" (assignment_expression "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" identifier = (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);" do (compound_statement "{\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        }" { (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar15 != (byte *)in_t2)" ( (binary_expression "pbVar15 != (byte *)in_t2" identifier != (cast_expression "(byte *)in_t2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) }) (else_clause "else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" else (compound_statement "{\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" { (if_statement "if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" if (parenthesized_expression "((int)pEVar5 < (int)pEVar10)" ( (binary_expression "(int)pEVar5 < (int)pEVar10" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" { (expression_statement "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)pbVar14;" (assignment_expression "iVar8 = *(int *)pbVar14" identifier = (pointer_expression "*(int *)pbVar14" * (cast_expression "(int *)pbVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -1)" ( (binary_expression "iVar8 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (while_statement "while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" while (parenthesized_expression "(pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0)" ( (comma_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0" (assignment_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar5->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "iVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar10 == pEVar5) goto LAB_00030390;" if (parenthesized_expression "(pEVar10 == pEVar5)" ( (binary_expression "pEVar10 == pEVar5" identifier == identifier) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pbVar14 + 4);" (assignment_expression "iVar8 = *(int *)(pbVar14 + 4)" identifier = (pointer_expression "*(int *)(pbVar14 + 4)" * (cast_expression "(int *)(pbVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -1)" ( (binary_expression "iVar8 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000303e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00030390:\n        iVar26 = *(int *)pcVar18;" statement_identifier : (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) }))) (while_statement "while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" while (parenthesized_expression "(pEVar5 = pEVar16, iVar26 == 0)" ( (comma_expression "pEVar5 = pEVar16, iVar26 == 0" (assignment_expression "pEVar5 = pEVar16" identifier = identifier) , (binary_expression "iVar26 == 0" identifier == number_literal)) )) (compound_statement "{\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030250;" goto statement_identifier ;)) (expression_statement "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;" (assignment_expression "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum" (field_expression "iVar26._0_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_phnum" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;" (assignment_expression "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize" (field_expression "iVar26._2_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_shentsize" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;" (assignment_expression "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&in_t1[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in_t1[-1].e_shnum" & (field_expression "in_t1[-1].e_shnum" (subscript_expression "in_t1[-1]" identifier [ number_literal ]) . field_identifier)))) ;) })) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (if_statement "if (*param_1 < (int)pEVar5) goto LAB_00030268;" if (parenthesized_expression "(*param_1 < (int)pEVar5)" ( (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00030268;" goto statement_identifier ;)) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000301b4;" goto statement_identifier ;) })) (labeled_statement "LAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" statement_identifier : (if_statement "if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" if (parenthesized_expression "(*param_1 < 0)" ( (binary_expression "*param_1 < 0" (pointer_expression "*param_1" * identifier) < number_literal) )) (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\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)) ;) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      param_1[1] = 0;\n    }" else (compound_statement "{\n      param_1[1] = 0;\n    }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) })))) })))) (expression_statement "pEVar5 = local_30;" (assignment_expression "pEVar5 = local_30" identifier = identifier) ;) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) (expression_statement "puVar9 = puVar47;" (assignment_expression "puVar9 = puVar47" identifier = identifier) ;) (if_statement "if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" if (parenthesized_expression "(local_30 != (Elf32_Ehdr *)0x0)" ( (binary_expression "local_30 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) })) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) (labeled_statement "LAB_00031bcc:\n  iVar37 = iVar37 + -1;" statement_identifier : (expression_statement "iVar37 = iVar37 + -1;" (assignment_expression "iVar37 = iVar37 + -1" identifier = (binary_expression "iVar37 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar37 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar37 == -1)" ( (binary_expression "iVar37 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar17 = *puVar23;" (assignment_expression "uVar17 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (if_statement "if (uVar17 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" identifier = (binary_expression "puVar23 + -1" identifier + number_literal)) ;) (if_statement "if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar6 % uVar17 == 0)" ( (binary_expression "uVar6 % uVar17 == 0" (binary_expression "uVar6 % uVar17" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" identifier = identifier) ;) (expression_statement "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);" (assignment_expression "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19)" identifier = (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" ( (pointer_expression "**(code **)(iVar8 + -0x7b80)" * (pointer_expression "*(code **)(iVar8 + -0x7b80)" * (cast_expression "(code **)(iVar8 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b80)" ( (binary_expression "iVar8 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar27 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" * (cast_expression "(int *)(iVar37 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + -0x7fd4)" ( (binary_expression "iVar37 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c20))" ( (pointer_expression "**(code **)(iVar37 + -0x7c20)" * (pointer_expression "*(code **)(iVar37 + -0x7c20)" * (cast_expression "(code **)(iVar37 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7c20)" ( (binary_expression "iVar37 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" * (cast_expression "(int *)(iVar37 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + -0x7fd4)" ( (binary_expression "iVar37 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar50 = 1;" statement_identifier : (expression_statement "iVar50 = 1;" (assignment_expression "iVar50 = 1" identifier = number_literal) ;)) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar55;" (assignment_expression "uVar6 = uVar55" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" statement_identifier : (expression_statement "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" (assignment_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55" (pointer_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68)" * (cast_expression "(uint *)(puVar9 + iVar37 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar37 * 4 + -0x68)" ( (binary_expression "puVar9 + iVar37 * 4 + -0x68" (binary_expression "puVar9 + iVar37 * 4" identifier + (binary_expression "iVar37 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar17 = uVar55 + 2;" statement_identifier : (expression_statement "uVar17 = uVar55 + 2;" (assignment_expression "uVar17 = uVar55 + 2" identifier = (binary_expression "uVar55 + 2" identifier + number_literal)) ;)) (expression_statement "iVar26 = (uint)(uVar17 < uVar55) + iVar26;" (assignment_expression "iVar26 = (uint)(uVar17 < uVar55) + iVar26" identifier = (binary_expression "(uint)(uVar17 < uVar55) + iVar26" (call_expression "(uint)(uVar17 < uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar55)" ( (binary_expression "uVar17 < uVar55" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar55 = uVar17;" (assignment_expression "uVar55 = uVar17" identifier = identifier) ;) (expression_statement "iVar37 = iVar50;" (assignment_expression "iVar37 = iVar50" identifier = identifier) ;) (if_statement "if (uVar54 <= uVar17) goto LAB_00031a64;" if (parenthesized_expression "(uVar54 <= uVar17)" ( (binary_expression "uVar54 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nvoid __gmpz_powm_sec(mpz_ptr r,mpz_srcptr b,mpz_srcptr e,mpz_srcptr m)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  Elf32_Ehdr *pEVar4;\n  uint uVar5;\n  Elf32_Ehdr *pEVar6;\n  int iVar7;\n  word *pwVar8;\n  Elf32_Ehdr *pEVar9;\n  undefined4 uVar10;\n  Elf32_Ehdr *pEVar11;\n  int *piVar12;\n  word *pwVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint *puVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined4 uVar24;\n  Elf32_Ehdr *pEVar25;\n  undefined4 uVar26;\n  Elf32_Ehdr *pEVar27;\n  undefined4 *puVar28;\n  undefined4 uVar29;\n  undefined4 uVar30;\n  Elf32_Ehdr *pEVar31;\n  mp_srcptr pmVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  Elf32_Ehdr *in_t1;\n  byte *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar35;\n  Elf32_Ehdr *unaff_s0;\n  int iVar36;\n  int *piVar37;\n  Elf32_Ehdr *pEVar38;\n  mp_ptr tp;\n  Elf32_Ehdr *pEVar39;\n  int *piVar40;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar41;\n  Elf32_Ehdr *pEVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined1 *puVar45;\n  undefined1 *puVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00097540;\n  puVar48 = auStack_68;\n  puVar45 = auStack_68;\n  puVar49 = auStack_68;\n  puVar35 = auStack_68;\n  pEVar4 = (Elf32_Ehdr *)m->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar9 = (Elf32_Ehdr *)-(int)pEVar4;\n  if (-1 < (int)pEVar4) {\n    pEVar9 = pEVar4;\n  }\n  pEVar38 = (Elf32_Ehdr *)e;\n  if (pEVar4 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n    pEVar16 = pEVar9;\n    if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar25 != (Elf32_Ehdr *)0x0);\n  if (pEVar9 == (Elf32_Ehdr *)&DAT_00000001) {\n    uVar5 = (uint)(uVar5 != 1);\n  }\n  else {\n    uVar5 = 1;\n  }\n  r->_mp_size = uVar5;\n  *r->_mp_d = 1;\nLAB_00030200:\n  if (local_2c == *(int *)puVar3) {\n    return;\n  }\n  pcVar51 = mod;\n  puVar43 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar48 + -0x24) = puVar3;\n  piVar37 = *(int **)(puVar43 + 0x67110);\n  puVar33 = *(undefined4 **)(puVar48 + 0x10);\n  *(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16;\n  *(mpz_srcptr *)(puVar48 + -0x1c) = m;\n  *(mpz_srcptr *)(puVar48 + -0x20) = b;\n  *(code **)(puVar48 + -4) = pcVar51;\n  *(undefined1 **)(puVar48 + -8) = auStack_68;\n  *(mpz_ptr *)(puVar48 + -0xc) = r;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar48 + -0x30) = 0;\n  uVar41 = *(undefined4 *)(puVar48 + 0x14);\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  pEVar16 = pEVar4;\n  pEVar27 = pEVar25;\n  if (pEVar38 == (Elf32_Ehdr *)&DAT_00000001) {\n    pEVar6 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar43 + 0x66e78);\n    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n    uVar10 = (*pcVar51)(uVar41);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n    pEVar4->e_ident_magic_str[2] = (char)uVar10;\nLAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    pcVar51 = *(code **)(iVar7 + -0x7a2c);\n    pEVar38 = unaff_s0;\n    puVar49 = puVar35;\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }\n  }\n  else {\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar48 + -0x2c) == *piVar37) {\n    return;\n  }\n  pcVar51 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = reduce;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6e978;\n  puVar35 = puVar48 + -0xb0;\n  *(mpz_srcptr *)(puVar48 + -0x70) = e;\n  *(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9;\n  pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar48 + -0x60) = puVar49;\n  *(mpz_ptr *)(puVar48 + -100) = r;\n  *(undefined4 *)(puVar48 + -0x6c) = uVar41;\n  *(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4;\n  *(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25;\n  *(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38;\n  *(code **)(puVar48 + -0x5c) = pcVar52;\n  *(int **)(puVar48 + -0x7c) = piVar37;\n  *(code **)(puVar48 + -0x98) = pcVar44;\n  *(undefined4 *)(puVar48 + -0x88) = 0;\n  pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48);\n  pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44);\n  *(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num;\n  if (pEVar42 < (Elf32_Ehdr *)0x7f01) {\n    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);\n    puVar35 = puVar48 + iVar7 + -0xb0;\n    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4;\n  pcVar51 = *(code **)(pcVar44 + -0x7d50);\n  if (uVar5 < 0x7f01) {\n    iVar7 = -(uVar5 + 7 & 0xfffffff8);\n    puVar49 = puVar35 + iVar7 + 0x18;\n    puVar35 = puVar35 + iVar7;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar41._0_1_ = pEVar6->e_ident_magic_num;\n    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];\n    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];\n    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];\n    pEVar25 = pEVar38;\n    pEVar42 = pEVar6;\n    if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }\n  }\n  *(undefined1 **)(puVar35 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4;\n  pEVar25 = pEVar16;\n  pEVar31 = pEVar9;\n  mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14));\n  iVar7 = *(int *)(puVar48 + -0x98);\n  if (pEVar9 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;\n    pEVar20 = pEVar23;\n    pEVar11 = pEVar38;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }\n    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n  }\n  piVar37 = *(int **)(puVar48 + -0x88);\n  if (piVar37 != (int *)0x0) {\n    (**(code **)(iVar7 + -0x7a2c))();\n    iVar7 = *(int *)(puVar48 + -0x98);\n  }\n  iVar34._0_1_ = pEVar39->e_ident_magic_num;\n  iVar34._1_1_ = pEVar39->e_ident_magic_str[0];\n  iVar34._2_1_ = pEVar39->e_ident_magic_str[1];\n  iVar34._3_1_ = pEVar39->e_ident_magic_str[2];\n  if (*(int *)(puVar48 + -0x84) == iVar34) {\n    return;\n  }\n  pcVar44 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar44)();\n  pcVar51 = pcVar44 + 0x6e770;\n  puVar33 = *(undefined4 **)(pcVar44 + 0x66c70);\n  puVar47 = puVar35 + -0xa0;\n  puVar49 = puVar35 + -0xa0;\n  puVar46 = puVar35 + -0xa0;\n  *(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0;\n  *(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6;\n  *(code **)(puVar35 + -4) = pcVar52;\n  *(undefined4 **)(puVar35 + -0x58) = puVar33;\n  *(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4;\n  *(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9;\n  *(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38;\n  *(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23;\n  *(code **)(puVar35 + -0x88) = pcVar51;\n  *(int **)(puVar35 + -0x54) = piVar37;\n  *(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25;\n  *(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31;\n  *(undefined4 *)(puVar35 + -0x2c) = *puVar33;\n  pEVar6 = pEVar27;\n  if (pEVar27 < (Elf32_Ehdr *)0x14) {\n    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;\n    pEVar42 = pEVar11;\n    if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }\n    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;\n    if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;\n    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);\n    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);\n    uVar54 = uVar55;\n    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar5 << 0x10 | uVar54;\n    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);\n    uVar5 = uVar54;\n    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }\n    *(uint *)(puVar35 + -0x44) = uVar5;\n    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);\n    pEVar9 = pEVar31;\n    if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }\n    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);\n    if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar5 = *(int *)(puVar35 + -0x50) + 4;\n    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);\n    *(uint *)(puVar35 + -0x70) = uVar5;\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    tp = *(mp_ptr *)(puVar35 + -100);\n    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;\n    pEVar25 = pEVar39;\n    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));\n    pcVar51 = *(code **)(puVar35 + -0x88);\n    pEVar9 = pEVar42;\n    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }\n    puVar33 = *(undefined4 **)(puVar35 + -100);\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = (Elf32_Ehdr *)*puVar33;\n    pEVar38 = pEVar4;\n    pwVar13 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);\n    iVar7 = 0x1f - (int)pEVar23;\n    pEVar16 = pEVar9;\n    if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }\nLAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;\n    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);\n    if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);\n    piVar12 = *(int **)(puVar35 + -0x58);\n    if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }\n  if (*(int *)(puVar35 + -0x2c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar41 = 0x3153c;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6db00;\n  puVar48 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23;\n  *(undefined4 *)(puVar49 + -4) = uVar41;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9;\n  *(code **)(puVar49 + -0x28) = pcVar44;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar25) {\n    if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }\n    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);\n    pcVar44 = *(code **)(puVar49 + -0x28);\n    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);\n    uVar5 = 8;\n    do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    iVar36 = 0;\n    uVar55 = 1;\n    iVar7 = 0;\n    uVar5 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    piVar40 = *(int **)(puVar49 + -0x20);\n    if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar44 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar44 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar48 + -0x24) = piVar37;\n  *(int **)(puVar48 + -0x20) = piVar12;\n  piVar37 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25;\n  *(code **)(puVar48 + -4) = pcVar52;\n  *(undefined1 **)(puVar48 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4;\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  iVar7 = (*pcVar44)();\n  puVar19 = (uint *)piVar40[2];\n  iVar36 = *(int *)(puVar48 + -0x90);\n  pEVar9 = (Elf32_Ehdr *)piVar40[1];\n  uVar5 = *puVar19;\n  if (iVar7 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;\n    *(uint **)(puVar48 + -0x6c) = puVar19;\n    piVar40 = (int *)(puVar48 + -0x74);\n    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;\n  }\n  if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)) {\n    pEVar27 = pEVar9;\n    if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }\n  }\nLAB_00031824:\n  iVar7 = *(int *)(puVar48 + -0x2c);\n  if (iVar7 == *piVar37) {\n    return;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar36 + -0x7b70);\n  uVar41 = 0x31c64;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar48 + -0xa8) = piVar37;\n  *(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9;\n  *(code **)(puVar48 + -0xb8) = pcVar44;\n  *(undefined4 *)(puVar48 + -0xa4) = uVar41;\n  if (*pcVar18 == '\0') {\n    pcVar44 = *(code **)(pcVar51 + 0x65990);\n    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar44)(uVar41);\n    pcVar44 = *(code **)(puVar48 + -0xb8);\n  }\n  pEVar9 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  (**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5);\n  if ((int)pEVar27 < 0) {\n    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);\n  }\n  return;\njoined_r0x00030154:\n  if (iVar7 != 0) goto LAB_00030180;\n  pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n  if (pEVar4 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum;\n  iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize;\n  pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  uVar5._0_1_ = in_t3->e_ident_magic_num;\n  uVar5._1_1_ = in_t3->e_ident_magic_str[0];\n  uVar5._2_1_ = in_t3->e_ident_magic_str[1];\n  uVar5._3_1_ = in_t3->e_ident_magic_str[2];\n  if (((uVar5 & 1) == 0) || (-1 < b->_mp_size)) {\n    if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }\n    r->_mp_size = (int)pEVar4;\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }\n  }\n  else {\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }\n  pEVar4 = (Elf32_Ehdr *)__tmp_marker;\n  e = (mpz_srcptr)pEVar27;\n  puVar48 = puVar45;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    e = (mpz_srcptr)pEVar27;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar36 = iVar36 + -1;\n  if (iVar36 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar22;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar22 = puVar22 + -1;\n  if (uVar5 % uVar17 == 0) {\n    pEVar27 = pEVar9;\n    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar36 = 0;\n  uVar5 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar34 = (uint)(uVar17 < uVar55) + iVar34;\n  uVar55 = uVar17;\n  iVar36 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" comment (function_definition "void __gmpz_powm_sec(mpz_ptr r,mpz_srcptr b,mpz_srcptr e,mpz_srcptr m)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  Elf32_Ehdr *pEVar4;\n  uint uVar5;\n  Elf32_Ehdr *pEVar6;\n  int iVar7;\n  word *pwVar8;\n  Elf32_Ehdr *pEVar9;\n  undefined4 uVar10;\n  Elf32_Ehdr *pEVar11;\n  int *piVar12;\n  word *pwVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint *puVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined4 uVar24;\n  Elf32_Ehdr *pEVar25;\n  undefined4 uVar26;\n  Elf32_Ehdr *pEVar27;\n  undefined4 *puVar28;\n  undefined4 uVar29;\n  undefined4 uVar30;\n  Elf32_Ehdr *pEVar31;\n  mp_srcptr pmVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  Elf32_Ehdr *in_t1;\n  byte *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar35;\n  Elf32_Ehdr *unaff_s0;\n  int iVar36;\n  int *piVar37;\n  Elf32_Ehdr *pEVar38;\n  mp_ptr tp;\n  Elf32_Ehdr *pEVar39;\n  int *piVar40;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar41;\n  Elf32_Ehdr *pEVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined1 *puVar45;\n  undefined1 *puVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00097540;\n  puVar48 = auStack_68;\n  puVar45 = auStack_68;\n  puVar49 = auStack_68;\n  puVar35 = auStack_68;\n  pEVar4 = (Elf32_Ehdr *)m->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar9 = (Elf32_Ehdr *)-(int)pEVar4;\n  if (-1 < (int)pEVar4) {\n    pEVar9 = pEVar4;\n  }\n  pEVar38 = (Elf32_Ehdr *)e;\n  if (pEVar4 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n    pEVar16 = pEVar9;\n    if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar25 != (Elf32_Ehdr *)0x0);\n  if (pEVar9 == (Elf32_Ehdr *)&DAT_00000001) {\n    uVar5 = (uint)(uVar5 != 1);\n  }\n  else {\n    uVar5 = 1;\n  }\n  r->_mp_size = uVar5;\n  *r->_mp_d = 1;\nLAB_00030200:\n  if (local_2c == *(int *)puVar3) {\n    return;\n  }\n  pcVar51 = mod;\n  puVar43 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar48 + -0x24) = puVar3;\n  piVar37 = *(int **)(puVar43 + 0x67110);\n  puVar33 = *(undefined4 **)(puVar48 + 0x10);\n  *(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16;\n  *(mpz_srcptr *)(puVar48 + -0x1c) = m;\n  *(mpz_srcptr *)(puVar48 + -0x20) = b;\n  *(code **)(puVar48 + -4) = pcVar51;\n  *(undefined1 **)(puVar48 + -8) = auStack_68;\n  *(mpz_ptr *)(puVar48 + -0xc) = r;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar48 + -0x30) = 0;\n  uVar41 = *(undefined4 *)(puVar48 + 0x14);\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  pEVar16 = pEVar4;\n  pEVar27 = pEVar25;\n  if (pEVar38 == (Elf32_Ehdr *)&DAT_00000001) {\n    pEVar6 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar43 + 0x66e78);\n    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n    uVar10 = (*pcVar51)(uVar41);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n    pEVar4->e_ident_magic_str[2] = (char)uVar10;\nLAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    pcVar51 = *(code **)(iVar7 + -0x7a2c);\n    pEVar38 = unaff_s0;\n    puVar49 = puVar35;\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }\n  }\n  else {\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar48 + -0x2c) == *piVar37) {\n    return;\n  }\n  pcVar51 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = reduce;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6e978;\n  puVar35 = puVar48 + -0xb0;\n  *(mpz_srcptr *)(puVar48 + -0x70) = e;\n  *(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9;\n  pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar48 + -0x60) = puVar49;\n  *(mpz_ptr *)(puVar48 + -100) = r;\n  *(undefined4 *)(puVar48 + -0x6c) = uVar41;\n  *(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4;\n  *(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25;\n  *(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38;\n  *(code **)(puVar48 + -0x5c) = pcVar52;\n  *(int **)(puVar48 + -0x7c) = piVar37;\n  *(code **)(puVar48 + -0x98) = pcVar44;\n  *(undefined4 *)(puVar48 + -0x88) = 0;\n  pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48);\n  pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44);\n  *(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num;\n  if (pEVar42 < (Elf32_Ehdr *)0x7f01) {\n    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);\n    puVar35 = puVar48 + iVar7 + -0xb0;\n    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4;\n  pcVar51 = *(code **)(pcVar44 + -0x7d50);\n  if (uVar5 < 0x7f01) {\n    iVar7 = -(uVar5 + 7 & 0xfffffff8);\n    puVar49 = puVar35 + iVar7 + 0x18;\n    puVar35 = puVar35 + iVar7;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar41._0_1_ = pEVar6->e_ident_magic_num;\n    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];\n    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];\n    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];\n    pEVar25 = pEVar38;\n    pEVar42 = pEVar6;\n    if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }\n  }\n  *(undefined1 **)(puVar35 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4;\n  pEVar25 = pEVar16;\n  pEVar31 = pEVar9;\n  mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14));\n  iVar7 = *(int *)(puVar48 + -0x98);\n  if (pEVar9 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;\n    pEVar20 = pEVar23;\n    pEVar11 = pEVar38;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }\n    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n  }\n  piVar37 = *(int **)(puVar48 + -0x88);\n  if (piVar37 != (int *)0x0) {\n    (**(code **)(iVar7 + -0x7a2c))();\n    iVar7 = *(int *)(puVar48 + -0x98);\n  }\n  iVar34._0_1_ = pEVar39->e_ident_magic_num;\n  iVar34._1_1_ = pEVar39->e_ident_magic_str[0];\n  iVar34._2_1_ = pEVar39->e_ident_magic_str[1];\n  iVar34._3_1_ = pEVar39->e_ident_magic_str[2];\n  if (*(int *)(puVar48 + -0x84) == iVar34) {\n    return;\n  }\n  pcVar44 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar44)();\n  pcVar51 = pcVar44 + 0x6e770;\n  puVar33 = *(undefined4 **)(pcVar44 + 0x66c70);\n  puVar47 = puVar35 + -0xa0;\n  puVar49 = puVar35 + -0xa0;\n  puVar46 = puVar35 + -0xa0;\n  *(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0;\n  *(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6;\n  *(code **)(puVar35 + -4) = pcVar52;\n  *(undefined4 **)(puVar35 + -0x58) = puVar33;\n  *(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4;\n  *(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9;\n  *(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38;\n  *(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23;\n  *(code **)(puVar35 + -0x88) = pcVar51;\n  *(int **)(puVar35 + -0x54) = piVar37;\n  *(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25;\n  *(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31;\n  *(undefined4 *)(puVar35 + -0x2c) = *puVar33;\n  pEVar6 = pEVar27;\n  if (pEVar27 < (Elf32_Ehdr *)0x14) {\n    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;\n    pEVar42 = pEVar11;\n    if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }\n    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;\n    if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;\n    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);\n    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);\n    uVar54 = uVar55;\n    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar5 << 0x10 | uVar54;\n    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);\n    uVar5 = uVar54;\n    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }\n    *(uint *)(puVar35 + -0x44) = uVar5;\n    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);\n    pEVar9 = pEVar31;\n    if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }\n    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);\n    if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar5 = *(int *)(puVar35 + -0x50) + 4;\n    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);\n    *(uint *)(puVar35 + -0x70) = uVar5;\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    tp = *(mp_ptr *)(puVar35 + -100);\n    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;\n    pEVar25 = pEVar39;\n    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));\n    pcVar51 = *(code **)(puVar35 + -0x88);\n    pEVar9 = pEVar42;\n    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }\n    puVar33 = *(undefined4 **)(puVar35 + -100);\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = (Elf32_Ehdr *)*puVar33;\n    pEVar38 = pEVar4;\n    pwVar13 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);\n    iVar7 = 0x1f - (int)pEVar23;\n    pEVar16 = pEVar9;\n    if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }\nLAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;\n    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);\n    if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);\n    piVar12 = *(int **)(puVar35 + -0x58);\n    if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }\n  if (*(int *)(puVar35 + -0x2c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar41 = 0x3153c;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6db00;\n  puVar48 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23;\n  *(undefined4 *)(puVar49 + -4) = uVar41;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9;\n  *(code **)(puVar49 + -0x28) = pcVar44;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar25) {\n    if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }\n    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);\n    pcVar44 = *(code **)(puVar49 + -0x28);\n    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);\n    uVar5 = 8;\n    do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    iVar36 = 0;\n    uVar55 = 1;\n    iVar7 = 0;\n    uVar5 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    piVar40 = *(int **)(puVar49 + -0x20);\n    if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar44 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar44 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar48 + -0x24) = piVar37;\n  *(int **)(puVar48 + -0x20) = piVar12;\n  piVar37 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25;\n  *(code **)(puVar48 + -4) = pcVar52;\n  *(undefined1 **)(puVar48 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4;\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  iVar7 = (*pcVar44)();\n  puVar19 = (uint *)piVar40[2];\n  iVar36 = *(int *)(puVar48 + -0x90);\n  pEVar9 = (Elf32_Ehdr *)piVar40[1];\n  uVar5 = *puVar19;\n  if (iVar7 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;\n    *(uint **)(puVar48 + -0x6c) = puVar19;\n    piVar40 = (int *)(puVar48 + -0x74);\n    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;\n  }\n  if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)) {\n    pEVar27 = pEVar9;\n    if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }\n  }\nLAB_00031824:\n  iVar7 = *(int *)(puVar48 + -0x2c);\n  if (iVar7 == *piVar37) {\n    return;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar36 + -0x7b70);\n  uVar41 = 0x31c64;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar48 + -0xa8) = piVar37;\n  *(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9;\n  *(code **)(puVar48 + -0xb8) = pcVar44;\n  *(undefined4 *)(puVar48 + -0xa4) = uVar41;\n  if (*pcVar18 == '\0') {\n    pcVar44 = *(code **)(pcVar51 + 0x65990);\n    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar44)(uVar41);\n    pcVar44 = *(code **)(puVar48 + -0xb8);\n  }\n  pEVar9 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  (**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5);\n  if ((int)pEVar27 < 0) {\n    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);\n  }\n  return;\njoined_r0x00030154:\n  if (iVar7 != 0) goto LAB_00030180;\n  pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n  if (pEVar4 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum;\n  iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize;\n  pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  uVar5._0_1_ = in_t3->e_ident_magic_num;\n  uVar5._1_1_ = in_t3->e_ident_magic_str[0];\n  uVar5._2_1_ = in_t3->e_ident_magic_str[1];\n  uVar5._3_1_ = in_t3->e_ident_magic_str[2];\n  if (((uVar5 & 1) == 0) || (-1 < b->_mp_size)) {\n    if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }\n    r->_mp_size = (int)pEVar4;\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }\n  }\n  else {\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }\n  pEVar4 = (Elf32_Ehdr *)__tmp_marker;\n  e = (mpz_srcptr)pEVar27;\n  puVar48 = puVar45;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    e = (mpz_srcptr)pEVar27;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar36 = iVar36 + -1;\n  if (iVar36 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar22;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar22 = puVar22 + -1;\n  if (uVar5 % uVar17 == 0) {\n    pEVar27 = pEVar9;\n    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar36 = 0;\n  uVar5 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar34 = (uint)(uVar17 < uVar55) + iVar34;\n  uVar55 = uVar17;\n  iVar36 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "__gmpz_powm_sec(mpz_ptr r,mpz_srcptr b,mpz_srcptr e,mpz_srcptr m)" identifier (parameter_list "(mpz_ptr r,mpz_srcptr b,mpz_srcptr e,mpz_srcptr m)" ( (parameter_declaration "mpz_ptr r" type_identifier identifier) , (parameter_declaration "mpz_srcptr b" type_identifier identifier) , (parameter_declaration "mpz_srcptr e" type_identifier identifier) , (parameter_declaration "mpz_srcptr m" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  Elf32_Ehdr *pEVar4;\n  uint uVar5;\n  Elf32_Ehdr *pEVar6;\n  int iVar7;\n  word *pwVar8;\n  Elf32_Ehdr *pEVar9;\n  undefined4 uVar10;\n  Elf32_Ehdr *pEVar11;\n  int *piVar12;\n  word *pwVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  Elf32_Ehdr *pEVar20;\n  undefined4 uVar21;\n  uint *puVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined4 uVar24;\n  Elf32_Ehdr *pEVar25;\n  undefined4 uVar26;\n  Elf32_Ehdr *pEVar27;\n  undefined4 *puVar28;\n  undefined4 uVar29;\n  undefined4 uVar30;\n  Elf32_Ehdr *pEVar31;\n  mp_srcptr pmVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  Elf32_Ehdr *in_t1;\n  byte *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar35;\n  Elf32_Ehdr *unaff_s0;\n  int iVar36;\n  int *piVar37;\n  Elf32_Ehdr *pEVar38;\n  mp_ptr tp;\n  Elf32_Ehdr *pEVar39;\n  int *piVar40;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar41;\n  Elf32_Ehdr *pEVar42;\n  undefined *puVar43;\n  code *pcVar44;\n  undefined1 *puVar45;\n  undefined1 *puVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00097540;\n  puVar48 = auStack_68;\n  puVar45 = auStack_68;\n  puVar49 = auStack_68;\n  puVar35 = auStack_68;\n  pEVar4 = (Elf32_Ehdr *)m->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar9 = (Elf32_Ehdr *)-(int)pEVar4;\n  if (-1 < (int)pEVar4) {\n    pEVar9 = pEVar4;\n  }\n  pEVar38 = (Elf32_Ehdr *)e;\n  if (pEVar4 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n    pEVar16 = pEVar9;\n    if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar25 != (Elf32_Ehdr *)0x0);\n  if (pEVar9 == (Elf32_Ehdr *)&DAT_00000001) {\n    uVar5 = (uint)(uVar5 != 1);\n  }\n  else {\n    uVar5 = 1;\n  }\n  r->_mp_size = uVar5;\n  *r->_mp_d = 1;\nLAB_00030200:\n  if (local_2c == *(int *)puVar3) {\n    return;\n  }\n  pcVar51 = mod;\n  puVar43 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar48 + -0x24) = puVar3;\n  piVar37 = *(int **)(puVar43 + 0x67110);\n  puVar33 = *(undefined4 **)(puVar48 + 0x10);\n  *(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16;\n  *(mpz_srcptr *)(puVar48 + -0x1c) = m;\n  *(mpz_srcptr *)(puVar48 + -0x20) = b;\n  *(code **)(puVar48 + -4) = pcVar51;\n  *(undefined1 **)(puVar48 + -8) = auStack_68;\n  *(mpz_ptr *)(puVar48 + -0xc) = r;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar48 + -0x30) = 0;\n  uVar41 = *(undefined4 *)(puVar48 + 0x14);\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  pEVar16 = pEVar4;\n  pEVar27 = pEVar25;\n  if (pEVar38 == (Elf32_Ehdr *)&DAT_00000001) {\n    pEVar6 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar43 + 0x66e78);\n    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n    uVar10 = (*pcVar51)(uVar41);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n    pEVar4->e_ident_magic_str[2] = (char)uVar10;\nLAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    pcVar51 = *(code **)(iVar7 + -0x7a2c);\n    pEVar38 = unaff_s0;\n    puVar49 = puVar35;\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }\n  }\n  else {\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar48 + -0x2c) == *piVar37) {\n    return;\n  }\n  pcVar51 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = reduce;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6e978;\n  puVar35 = puVar48 + -0xb0;\n  *(mpz_srcptr *)(puVar48 + -0x70) = e;\n  *(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9;\n  pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar48 + -0x60) = puVar49;\n  *(mpz_ptr *)(puVar48 + -100) = r;\n  *(undefined4 *)(puVar48 + -0x6c) = uVar41;\n  *(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4;\n  *(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25;\n  *(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38;\n  *(code **)(puVar48 + -0x5c) = pcVar52;\n  *(int **)(puVar48 + -0x7c) = piVar37;\n  *(code **)(puVar48 + -0x98) = pcVar44;\n  *(undefined4 *)(puVar48 + -0x88) = 0;\n  pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48);\n  pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44);\n  *(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num;\n  if (pEVar42 < (Elf32_Ehdr *)0x7f01) {\n    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);\n    puVar35 = puVar48 + iVar7 + -0xb0;\n    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4;\n  pcVar51 = *(code **)(pcVar44 + -0x7d50);\n  if (uVar5 < 0x7f01) {\n    iVar7 = -(uVar5 + 7 & 0xfffffff8);\n    puVar49 = puVar35 + iVar7 + 0x18;\n    puVar35 = puVar35 + iVar7;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar41._0_1_ = pEVar6->e_ident_magic_num;\n    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];\n    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];\n    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];\n    pEVar25 = pEVar38;\n    pEVar42 = pEVar6;\n    if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }\n  }\n  *(undefined1 **)(puVar35 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4;\n  pEVar25 = pEVar16;\n  pEVar31 = pEVar9;\n  mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14));\n  iVar7 = *(int *)(puVar48 + -0x98);\n  if (pEVar9 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;\n    pEVar20 = pEVar23;\n    pEVar11 = pEVar38;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }\n    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n  }\n  piVar37 = *(int **)(puVar48 + -0x88);\n  if (piVar37 != (int *)0x0) {\n    (**(code **)(iVar7 + -0x7a2c))();\n    iVar7 = *(int *)(puVar48 + -0x98);\n  }\n  iVar34._0_1_ = pEVar39->e_ident_magic_num;\n  iVar34._1_1_ = pEVar39->e_ident_magic_str[0];\n  iVar34._2_1_ = pEVar39->e_ident_magic_str[1];\n  iVar34._3_1_ = pEVar39->e_ident_magic_str[2];\n  if (*(int *)(puVar48 + -0x84) == iVar34) {\n    return;\n  }\n  pcVar44 = *(code **)(iVar7 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar44)();\n  pcVar51 = pcVar44 + 0x6e770;\n  puVar33 = *(undefined4 **)(pcVar44 + 0x66c70);\n  puVar47 = puVar35 + -0xa0;\n  puVar49 = puVar35 + -0xa0;\n  puVar46 = puVar35 + -0xa0;\n  *(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0;\n  *(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6;\n  *(code **)(puVar35 + -4) = pcVar52;\n  *(undefined4 **)(puVar35 + -0x58) = puVar33;\n  *(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4;\n  *(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9;\n  *(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38;\n  *(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23;\n  *(code **)(puVar35 + -0x88) = pcVar51;\n  *(int **)(puVar35 + -0x54) = piVar37;\n  *(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25;\n  *(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31;\n  *(undefined4 *)(puVar35 + -0x2c) = *puVar33;\n  pEVar6 = pEVar27;\n  if (pEVar27 < (Elf32_Ehdr *)0x14) {\n    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;\n    pEVar42 = pEVar11;\n    if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }\n    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;\n    if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;\n    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);\n    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);\n    uVar54 = uVar55;\n    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar5 << 0x10 | uVar54;\n    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);\n    uVar5 = uVar54;\n    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }\n    *(uint *)(puVar35 + -0x44) = uVar5;\n    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);\n    pEVar9 = pEVar31;\n    if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }\n    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);\n    if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar5 = *(int *)(puVar35 + -0x50) + 4;\n    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);\n    *(uint *)(puVar35 + -0x70) = uVar5;\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    tp = *(mp_ptr *)(puVar35 + -100);\n    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;\n    pEVar25 = pEVar39;\n    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));\n    pcVar51 = *(code **)(puVar35 + -0x88);\n    pEVar9 = pEVar42;\n    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }\n    puVar33 = *(undefined4 **)(puVar35 + -100);\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = (Elf32_Ehdr *)*puVar33;\n    pEVar38 = pEVar4;\n    pwVar13 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);\n    iVar7 = 0x1f - (int)pEVar23;\n    pEVar16 = pEVar9;\n    if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }\nLAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;\n    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);\n    if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);\n    piVar12 = *(int **)(puVar35 + -0x58);\n    if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }\n  if (*(int *)(puVar35 + -0x2c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar41 = 0x3153c;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6db00;\n  puVar48 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23;\n  *(undefined4 *)(puVar49 + -4) = uVar41;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9;\n  *(code **)(puVar49 + -0x28) = pcVar44;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar25) {\n    if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }\n    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);\n    pcVar44 = *(code **)(puVar49 + -0x28);\n    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);\n    uVar5 = 8;\n    do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    iVar36 = 0;\n    uVar55 = 1;\n    iVar7 = 0;\n    uVar5 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    piVar40 = *(int **)(puVar49 + -0x20);\n    if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return;\n  }\n  pcVar51 = *(code **)(pcVar44 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar44 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar48 + -0x24) = piVar37;\n  *(int **)(puVar48 + -0x20) = piVar12;\n  piVar37 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39;\n  *(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42;\n  *(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25;\n  *(code **)(puVar48 + -4) = pcVar52;\n  *(undefined1 **)(puVar48 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4;\n  *(int *)(puVar48 + -0x2c) = *piVar37;\n  iVar7 = (*pcVar44)();\n  puVar19 = (uint *)piVar40[2];\n  iVar36 = *(int *)(puVar48 + -0x90);\n  pEVar9 = (Elf32_Ehdr *)piVar40[1];\n  uVar5 = *puVar19;\n  if (iVar7 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;\n    *(uint **)(puVar48 + -0x6c) = puVar19;\n    piVar40 = (int *)(puVar48 + -0x74);\n    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;\n  }\n  if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)) {\n    pEVar27 = pEVar9;\n    if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }\n  }\nLAB_00031824:\n  iVar7 = *(int *)(puVar48 + -0x2c);\n  if (iVar7 == *piVar37) {\n    return;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar36 + -0x7b70);\n  uVar41 = 0x31c64;\n  (*pcVar51)();\n  pcVar44 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar48 + -0xa8) = piVar37;\n  *(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9;\n  *(code **)(puVar48 + -0xb8) = pcVar44;\n  *(undefined4 *)(puVar48 + -0xa4) = uVar41;\n  if (*pcVar18 == '\0') {\n    pcVar44 = *(code **)(pcVar51 + 0x65990);\n    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar44)(uVar41);\n    pcVar44 = *(code **)(puVar48 + -0xb8);\n  }\n  pEVar9 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  (**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5);\n  if ((int)pEVar27 < 0) {\n    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);\n  }\n  return;\njoined_r0x00030154:\n  if (iVar7 != 0) goto LAB_00030180;\n  pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n  if (pEVar4 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum;\n  iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize;\n  pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  uVar5._0_1_ = in_t3->e_ident_magic_num;\n  uVar5._1_1_ = in_t3->e_ident_magic_str[0];\n  uVar5._2_1_ = in_t3->e_ident_magic_str[1];\n  uVar5._3_1_ = in_t3->e_ident_magic_str[2];\n  if (((uVar5 & 1) == 0) || (-1 < b->_mp_size)) {\n    if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }\n    r->_mp_size = (int)pEVar4;\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }\n  }\n  else {\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }\n  pEVar4 = (Elf32_Ehdr *)__tmp_marker;\n  e = (mpz_srcptr)pEVar27;\n  puVar48 = puVar45;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    e = (mpz_srcptr)pEVar27;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar36 = iVar36 + -1;\n  if (iVar36 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar22;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar22 = puVar22 + -1;\n  if (uVar5 % uVar17 == 0) {\n    pEVar27 = pEVar9;\n    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar36 = 0;\n  uVar5 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar34 = (uint)(uVar17 < uVar55) + iVar34;\n  uVar55 = uVar17;\n  iVar36 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "Elf32_Ehdr *pEVar4;" type_identifier (pointer_declarator "*pEVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar6;" type_identifier (pointer_declarator "*pEVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "word *pwVar8;" type_identifier (pointer_declarator "*pwVar8" * identifier) ;) (declaration "Elf32_Ehdr *pEVar9;" type_identifier (pointer_declarator "*pEVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar11;" type_identifier (pointer_declarator "*pEVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "word *pwVar13;" type_identifier (pointer_declarator "*pwVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "Elf32_Ehdr *pEVar16;" type_identifier (pointer_declarator "*pEVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "Elf32_Ehdr *pEVar23;" type_identifier (pointer_declarator "*pEVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar25;" type_identifier (pointer_declarator "*pEVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "undefined4 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "undefined4 uVar30;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "mp_srcptr pmVar32;" type_identifier identifier ;) (declaration "undefined4 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "byte *in_t2;" type_identifier (pointer_declarator "*in_t2" * identifier) ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined1 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "int *piVar37;" primitive_type (pointer_declarator "*piVar37" * identifier) ;) (declaration "Elf32_Ehdr *pEVar38;" type_identifier (pointer_declarator "*pEVar38" * identifier) ;) (declaration "mp_ptr tp;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar39;" type_identifier (pointer_declarator "*pEVar39" * identifier) ;) (declaration "int *piVar40;" primitive_type (pointer_declarator "*piVar40" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 uVar41;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar42;" type_identifier (pointer_declarator "*pEVar42" * identifier) ;) (declaration "undefined *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "code *pcVar44;" type_identifier (pointer_declarator "*pcVar44" * identifier) ;) (declaration "undefined1 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "undefined1 *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "undefined1 *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "undefined1 *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "undefined1 *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "code *pcVar51;" type_identifier (pointer_declarator "*pcVar51" * identifier) ;) (declaration "code *pcVar52;" type_identifier (pointer_declarator "*pcVar52" * identifier) ;) (declaration "uint uVar53;" type_identifier identifier ;) (declaration "uint uVar54;" type_identifier identifier ;) (declaration "uint uVar55;" type_identifier identifier ;) (declaration "undefined8 uVar56;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [32];" type_identifier (array_declarator "auStack_68 [32]" 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 "puVar3 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00097540" identifier = identifier) ;) (expression_statement "puVar48 = auStack_68;" (assignment_expression "puVar48 = auStack_68" identifier = identifier) ;) (expression_statement "puVar45 = auStack_68;" (assignment_expression "puVar45 = auStack_68" identifier = identifier) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (expression_statement "puVar35 = auStack_68;" (assignment_expression "puVar35 = auStack_68" identifier = identifier) ;) (expression_statement "pEVar4 = (Elf32_Ehdr *)m->_mp_size;" (assignment_expression "pEVar4 = (Elf32_Ehdr *)m->_mp_size" identifier = (cast_expression "(Elf32_Ehdr *)m->_mp_size" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "m->_mp_size" identifier -> field_identifier))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)-(int)pEVar4;" (assignment_expression "pEVar9 = (Elf32_Ehdr *)-(int)pEVar4" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar4" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar4" - (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (-1 < (int)pEVar4) {\n    pEVar9 = pEVar4;\n  }" if (parenthesized_expression "(-1 < (int)pEVar4)" ( (binary_expression "-1 < (int)pEVar4" number_literal < (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pEVar9 = pEVar4;\n  }" { (expression_statement "pEVar9 = pEVar4;" (assignment_expression "pEVar9 = pEVar4" identifier = identifier) ;) })) (expression_statement "pEVar38 = (Elf32_Ehdr *)e;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)e" identifier = (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pEVar4 != (Elf32_Ehdr *)0x0) goto LAB_00030070;" if (parenthesized_expression "(pEVar4 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar4 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030070;" goto statement_identifier ;)) (do_statement "do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n    pEVar16 = pEVar9;\n    if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar25 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n    pEVar16 = pEVar9;\n    if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }\n  }" { (do_statement "do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    } while (pEVar4 == (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = m->_mp_d;\n      uVar5 = *puVar19;\n      pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);\n    }" { (expression_statement "(*(code *)PTR___gmp_divide_by_zero_000975dc)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_000975dc" * (cast_expression "(code *)PTR___gmp_divide_by_zero_000975dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00030070:\n      puVar19 = m->_mp_d;" statement_identifier : (expression_statement "puVar19 = m->_mp_d;" (assignment_expression "puVar19 = m->_mp_d" identifier = (field_expression "m->_mp_d" identifier -> field_identifier)) ;)) (expression_statement "uVar5 = *puVar19;" (assignment_expression "uVar5 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "pEVar4 = (Elf32_Ehdr *)(uVar5 & 1);" (assignment_expression "pEVar4 = (Elf32_Ehdr *)(uVar5 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar5 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )))) ;) }) while (parenthesized_expression "(pEVar4 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar4 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar16 = pEVar9;" (assignment_expression "pEVar16 = pEVar9" identifier = identifier) ;) (if_statement "if (0 < (int)pEVar25) {\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }" if (parenthesized_expression "(0 < (int)pEVar25)" ( (binary_expression "0 < (int)pEVar25" number_literal < (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pEVar6 = (Elf32_Ehdr *)b->_mp_size;\n      pEVar27 = pEVar6;\n      if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }\n      if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar36 = (int)pEVar25 << 5;\n      __tmp_marker = (tmp_reentrant_t *)0x0;\n      iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);\n      uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;\n      if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }\n      in_t2 = (byte *)((int)pEVar9 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;\n      pEVar25 = (Elf32_Ehdr *)b->_mp_d;\n      in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);\n      *(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;\n      *(uint **)(puVar45 + 0x14) = puVar19;\n      *(int *)(puVar45 + 0x10) = iVar36;\n      pEVar38 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;\n      iVar7 = *(int *)pwVar8;\n      pEVar6 = in_t1;\n      pEVar4 = pEVar9;\n      goto joined_r0x00030154;\n    }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)b->_mp_size;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)b->_mp_size" identifier = (cast_expression "(Elf32_Ehdr *)b->_mp_size" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->_mp_size" identifier -> field_identifier))) ;) (expression_statement "pEVar27 = pEVar6;" (assignment_expression "pEVar27 = pEVar6" identifier = identifier) ;) (if_statement "if ((int)pEVar6 < 0) {\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }" if (parenthesized_expression "((int)pEVar6 < 0)" ( (binary_expression "(int)pEVar6 < 0" (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;\n      }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)-(int)pEVar6;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)-(int)pEVar6" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar6" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar6" - (cast_expression "(int)pEVar6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (if_statement "if (pEVar6 == (Elf32_Ehdr *)0x0) {\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }" if (parenthesized_expression "(pEVar6 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar6 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        r->_mp_size = 0;\n        puVar48 = auStack_68;\n        goto LAB_00030200;\n      }" { (expression_statement "r->_mp_size = 0;" (assignment_expression "r->_mp_size = 0" (field_expression "r->_mp_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar48 = auStack_68;" (assignment_expression "puVar48 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) })) (expression_statement "iVar36 = (int)pEVar25 << 5;" (assignment_expression "iVar36 = (int)pEVar25 << 5" identifier = (binary_expression "(int)pEVar25 << 5" (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) 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 "iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9)" identifier = (call_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar27,iVar36,pEVar9)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_itch_00097538" * (cast_expression "(code *)PTR___gmpn_sec_powm_itch_00097538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar27,iVar36,pEVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4;" (assignment_expression "uVar5 = (int)(&pEVar9->e_ident_magic_num + iVar7) * 4" identifier = (binary_expression "(int)(&pEVar9->e_ident_magic_num + iVar7) * 4" (cast_expression "(int)(&pEVar9->e_ident_magic_num + iVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar9->e_ident_magic_num + iVar7)" ( (binary_expression "&pEVar9->e_ident_magic_num + iVar7" (pointer_expression "&pEVar9->e_ident_magic_num" & (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)) + identifier) ))) * number_literal)) ;) (if_statement "if (uVar5 < 0x7f01) {\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }" if (parenthesized_expression "(uVar5 < 0x7f01)" ( (binary_expression "uVar5 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar7 = -(uVar5 + 7 & 0xfffffff8);\n        puVar45 = auStack_68 + iVar7;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);\n      }" { (expression_statement "iVar7 = -(uVar5 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar5 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar5 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar5 + 7 & 0xfffffff8)" ( (binary_expression "uVar5 + 7 & 0xfffffff8" (binary_expression "uVar5 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar45 = auStack_68 + iVar7;" (assignment_expression "puVar45 = auStack_68 + iVar7" identifier = (binary_expression "auStack_68 + iVar7" identifier + identifier)) ;) (expression_statement "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar7)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffb8 + iVar7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb8 + iVar7)" ( (binary_expression "&stack0xffffffb8 + iVar7" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) }) (else_clause "else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }" else (compound_statement "{\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);\n      }" { (expression_statement "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }))) (expression_statement "in_t2 = (byte *)((int)pEVar9 * 4);" (assignment_expression "in_t2 = (byte *)((int)pEVar9 * 4)" identifier = (cast_expression "(byte *)((int)pEVar9 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar9 * 4)" ( (binary_expression "(int)pEVar9 * 4" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion;" (assignment_expression "in_t3 = *(Elf32_Ehdr **)&pEVar38->e_ident_abiversion" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_abiversion" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_abiversion" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_abiversion" & (field_expression "pEVar38->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)b->_mp_d;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)b->_mp_d" identifier = (cast_expression "(Elf32_Ehdr *)b->_mp_d" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->_mp_d" identifier -> field_identifier))) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2);" (assignment_expression "in_t1 = (Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2)" identifier = (cast_expression "(Elf32_Ehdr *)(&unaff_s5->e_ident_magic_num + (int)in_t2)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&unaff_s5->e_ident_magic_num + (int)in_t2)" ( (binary_expression "&unaff_s5->e_ident_magic_num + (int)in_t2" (pointer_expression "&unaff_s5->e_ident_magic_num" & (field_expression "unaff_s5->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1;" (assignment_expression "*(Elf32_Ehdr **)(puVar45 + 0x1c) = in_t1" (pointer_expression "*(Elf32_Ehdr **)(puVar45 + 0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar45 + 0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x1c)" ( (binary_expression "puVar45 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar45 + 0x18) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar45 + 0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar45 + 0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x18)" ( (binary_expression "puVar45 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar45 + 0x14) = puVar19;" (assignment_expression "*(uint **)(puVar45 + 0x14) = puVar19" (pointer_expression "*(uint **)(puVar45 + 0x14)" * (cast_expression "(uint **)(puVar45 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x14)" ( (binary_expression "puVar45 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar45 + 0x10) = iVar36;" (assignment_expression "*(int *)(puVar45 + 0x10) = iVar36" (pointer_expression "*(int *)(puVar45 + 0x10)" * (cast_expression "(int *)(puVar45 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x10)" ( (binary_expression "puVar45 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar38 = in_t3;" (assignment_expression "pEVar38 = in_t3" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);" (call_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_000972d0" * (cast_expression "(code *)PTR___gmpn_sec_powm_000972d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;) (expression_statement "pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2;" (assignment_expression "pwVar8 = &unaff_s5[-1].e_shnum + (int)pEVar9 * 2" identifier = (binary_expression "&unaff_s5[-1].e_shnum + (int)pEVar9 * 2" (pointer_expression "&unaff_s5[-1].e_shnum" & (field_expression "unaff_s5[-1].e_shnum" (subscript_expression "unaff_s5[-1]" identifier [ number_literal ]) . field_identifier)) + (binary_expression "(int)pEVar9 * 2" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "iVar7 = *(int *)pwVar8;" (assignment_expression "iVar7 = *(int *)pwVar8" identifier = (pointer_expression "*(int *)pwVar8" * (cast_expression "(int *)pwVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar6 = in_t1;" (assignment_expression "pEVar6 = in_t1" identifier = identifier) ;) (expression_statement "pEVar4 = pEVar9;" (assignment_expression "pEVar4 = pEVar9" identifier = identifier) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) })) }) while (parenthesized_expression "(pEVar25 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar25 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pEVar9 == (Elf32_Ehdr *)&DAT_00000001) {\n    uVar5 = (uint)(uVar5 != 1);\n  }\n  else {\n    uVar5 = 1;\n  }" if (parenthesized_expression "(pEVar9 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar9 == (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    uVar5 = (uint)(uVar5 != 1);\n  }" { (expression_statement "uVar5 = (uint)(uVar5 != 1);" (assignment_expression "uVar5 = (uint)(uVar5 != 1)" identifier = (call_expression "(uint)(uVar5 != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )))) ;) }) (else_clause "else {\n    uVar5 = 1;\n  }" else (compound_statement "{\n    uVar5 = 1;\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }))) (expression_statement "r->_mp_size = uVar5;" (assignment_expression "r->_mp_size = uVar5" (field_expression "r->_mp_size" identifier -> field_identifier) = identifier) ;) (expression_statement "*r->_mp_d = 1;" (assignment_expression "*r->_mp_d = 1" (pointer_expression "*r->_mp_d" * (field_expression "r->_mp_d" identifier -> field_identifier)) = number_literal) ;) (labeled_statement "LAB_00030200:\n  if (local_2c == *(int *)puVar3) {\n    return;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar51 = mod;" (assignment_expression "pcVar51 = mod" identifier = identifier) ;) (expression_statement "puVar43 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar43 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined **)(puVar48 + -0x24) = puVar3;" (assignment_expression "*(undefined **)(puVar48 + -0x24) = puVar3" (pointer_expression "*(undefined **)(puVar48 + -0x24)" * (cast_expression "(undefined **)(puVar48 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x24)" ( (binary_expression "puVar48 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar37 = *(int **)(puVar43 + 0x67110);" (assignment_expression "piVar37 = *(int **)(puVar43 + 0x67110)" identifier = (pointer_expression "*(int **)(puVar43 + 0x67110)" * (cast_expression "(int **)(puVar43 + 0x67110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x67110)" ( (binary_expression "puVar43 + 0x67110" identifier + number_literal) ))))) ;) (expression_statement "puVar33 = *(undefined4 **)(puVar48 + 0x10);" (assignment_expression "puVar33 = *(undefined4 **)(puVar48 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(puVar48 + 0x10)" * (cast_expression "(undefined4 **)(puVar48 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + 0x10)" ( (binary_expression "puVar48 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10;" (assignment_expression "*(undefined **)(puVar48 + -0x38) = puVar43 + 0x6ec10" (pointer_expression "*(undefined **)(puVar48 + -0x38)" * (cast_expression "(undefined **)(puVar48 + -0x38)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) )))) = (binary_expression "puVar43 + 0x6ec10" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x14) = unaff_s5" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x14)" ( (binary_expression "puVar48 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x18)" ( (binary_expression "puVar48 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar48 + -0x1c) = m;" (assignment_expression "*(mpz_srcptr *)(puVar48 + -0x1c) = m" (pointer_expression "*(mpz_srcptr *)(puVar48 + -0x1c)" * (cast_expression "(mpz_srcptr *)(puVar48 + -0x1c)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x1c)" ( (binary_expression "puVar48 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar48 + -0x20) = b;" (assignment_expression "*(mpz_srcptr *)(puVar48 + -0x20) = b" (pointer_expression "*(mpz_srcptr *)(puVar48 + -0x20)" * (cast_expression "(mpz_srcptr *)(puVar48 + -0x20)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x20)" ( (binary_expression "puVar48 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar48 + -4) = pcVar51;" (assignment_expression "*(code **)(puVar48 + -4) = pcVar51" (pointer_expression "*(code **)(puVar48 + -4)" * (cast_expression "(code **)(puVar48 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -4)" ( (binary_expression "puVar48 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar48 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar48 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar48 + -8)" * (cast_expression "(undefined1 **)(puVar48 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -8)" ( (binary_expression "puVar48 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_ptr *)(puVar48 + -0xc) = r;" (assignment_expression "*(mpz_ptr *)(puVar48 + -0xc) = r" (pointer_expression "*(mpz_ptr *)(puVar48 + -0xc)" * (cast_expression "(mpz_ptr *)(puVar48 + -0xc)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0xc)" ( (binary_expression "puVar48 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x10)" ( (binary_expression "puVar48 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x28) = unaff_s0" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x28)" ( (binary_expression "puVar48 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar48 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar48 + -0x30)" * (cast_expression "(undefined4 *)(puVar48 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x30)" ( (binary_expression "puVar48 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar41 = *(undefined4 *)(puVar48 + 0x14);" (assignment_expression "uVar41 = *(undefined4 *)(puVar48 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(puVar48 + 0x14)" * (cast_expression "(undefined4 *)(puVar48 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + 0x14)" ( (binary_expression "puVar48 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar48 + -0x2c) = *piVar37;" (assignment_expression "*(int *)(puVar48 + -0x2c) = *piVar37" (pointer_expression "*(int *)(puVar48 + -0x2c)" * (cast_expression "(int *)(puVar48 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x2c)" ( (binary_expression "puVar48 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar37" * identifier)) ;) (expression_statement "pEVar16 = pEVar4;" (assignment_expression "pEVar16 = pEVar4" identifier = identifier) ;) (expression_statement "pEVar27 = pEVar25;" (assignment_expression "pEVar27 = pEVar25" identifier = identifier) ;) (if_statement "if (pEVar38 == (Elf32_Ehdr *)&DAT_00000001) {\n    pEVar6 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar43 + 0x66e78);\n    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n    uVar10 = (*pcVar51)(uVar41);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n    pEVar4->e_ident_magic_str[2] = (char)uVar10;\nLAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    pcVar51 = *(code **)(iVar7 + -0x7a2c);\n    pEVar38 = unaff_s0;\n    puVar49 = puVar35;\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }\n  }\n  else {\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" if (parenthesized_expression "(pEVar38 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar38 == (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    pEVar6 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar43 + 0x66e78);\n    *(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n    uVar10 = (*pcVar51)(uVar41);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n    pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n    pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n    pEVar4->e_ident_magic_str[2] = (char)uVar10;\nLAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    pcVar51 = *(code **)(iVar7 + -0x7a2c);\n    pEVar38 = unaff_s0;\n    puVar49 = puVar35;\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }\n  }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar51 = *(code **)(puVar43 + 0x66e78);" (assignment_expression "pcVar51 = *(code **)(puVar43 + 0x66e78)" identifier = (pointer_expression "*(code **)(puVar43 + 0x66e78)" * (cast_expression "(code **)(puVar43 + 0x66e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x66e78)" ( (binary_expression "puVar43 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;" (assignment_expression "*(undefined4 *)(puVar48 + -0x48) = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" (pointer_expression "*(undefined4 *)(puVar48 + -0x48)" * (cast_expression "(undefined4 *)(puVar48 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" * (cast_expression "(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)e)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)e)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)e)" ( (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "uVar10 = (*pcVar51)(uVar41);" (assignment_expression "uVar10 = (*pcVar51)(uVar41)" identifier = (call_expression "(*pcVar51)(uVar41)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar41)" ( identifier )))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);" (assignment_expression "pEVar4->e_ident_magic_num = (char)((uint)uVar10 >> 0x18)" (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar10 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 0x18)" ( (binary_expression "(uint)uVar10 >> 0x18" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);" (assignment_expression "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10)" (subscript_expression "pEVar4->e_ident_magic_str[0]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar10 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 0x10)" ( (binary_expression "(uint)uVar10 >> 0x10" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);" (assignment_expression "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8)" (subscript_expression "pEVar4->e_ident_magic_str[1]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar10 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 8)" ( (binary_expression "(uint)uVar10 >> 8" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[2] = (char)uVar10;" (assignment_expression "pEVar4->e_ident_magic_str[2] = (char)uVar10" (subscript_expression "pEVar4->e_ident_magic_str[2]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0003056c:\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);" statement_identifier : (expression_statement "pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);" (assignment_expression "pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x30)" ( (binary_expression "puVar48 + -0x30" identifier + number_literal) ))))) ;)) (expression_statement "pcVar51 = *(code **)(iVar7 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar7 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar7 + -0x7a2c)" * (cast_expression "(code **)(iVar7 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7a2c)" ( (binary_expression "iVar7 + -0x7a2c" identifier + number_literal) ))))) ;) (expression_statement "pEVar38 = unaff_s0;" (assignment_expression "pEVar38 = unaff_s0" identifier = identifier) ;) (expression_statement "puVar49 = puVar35;" (assignment_expression "puVar49 = puVar35" identifier = identifier) ;) (if_statement "if (pEVar23 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }" if (parenthesized_expression "(pEVar23 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar23 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030534:\n      (*pcVar51)();\n      iVar7 = *(int *)(puVar48 + -0x38);\n    }" { (labeled_statement "LAB_00030534:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" else (compound_statement "{\n    pEVar6 = pEVar4;\n    unaff_s0 = pEVar38;\n    if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar48 + -0x44) = puVar33;\n    *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n    pEVar16 = pEVar25;\n    pEVar27 = (Elf32_Ehdr *)e;\n    (*pcVar51)(uVar41);\n    pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);\n    iVar7 = *(int *)(puVar48 + -0x38);\n    if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" { (expression_statement "pEVar6 = pEVar4;" (assignment_expression "pEVar6 = pEVar4" identifier = identifier) ;) (expression_statement "unaff_s0 = pEVar38;" (assignment_expression "unaff_s0 = pEVar38" identifier = identifier) ;) (if_statement "if (pEVar38 == (Elf32_Ehdr *)0x2) {\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(pEVar38 == (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar38 == (Elf32_Ehdr *)0x2" identifier == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;\n      uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;\n      pcVar51 = *(code **)(puVar43 + 0x66f54);\n      *(undefined4 *)(puVar48 + -0x40) = *puVar33;\n      *(undefined4 *)(puVar48 + -0x44) = uVar21;\n      *(undefined4 *)(puVar48 + -0x48) = uVar10;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num;" (assignment_expression "uVar21 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" identifier = (pointer_expression "*(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" * (cast_expression "(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_magic_num" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)e)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)e)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)e)" ( (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class;" (assignment_expression "uVar10 = *(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class" identifier = (pointer_expression "*(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class" * (cast_expression "(undefined4 *)&((Elf32_Ehdr *)e)->e_ident_class" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)e)->e_ident_class" & (field_expression "((Elf32_Ehdr *)e)->e_ident_class" (parenthesized_expression "((Elf32_Ehdr *)e)" ( (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "pcVar51 = *(code **)(puVar43 + 0x66f54);" (assignment_expression "pcVar51 = *(code **)(puVar43 + 0x66f54)" identifier = (pointer_expression "*(code **)(puVar43 + 0x66f54)" * (cast_expression "(code **)(puVar43 + 0x66f54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x66f54)" ( (binary_expression "puVar43 + 0x66f54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x40) = *puVar33;" (assignment_expression "*(undefined4 *)(puVar48 + -0x40) = *puVar33" (pointer_expression "*(undefined4 *)(puVar48 + -0x40)" * (cast_expression "(undefined4 *)(puVar48 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x40)" ( (binary_expression "puVar48 + -0x40" identifier + number_literal) )))) = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x44) = uVar21;" (assignment_expression "*(undefined4 *)(puVar48 + -0x44) = uVar21" (pointer_expression "*(undefined4 *)(puVar48 + -0x44)" * (cast_expression "(undefined4 *)(puVar48 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x44)" ( (binary_expression "puVar48 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x48) = uVar10;" (assignment_expression "*(undefined4 *)(puVar48 + -0x48) = uVar10" (pointer_expression "*(undefined4 *)(puVar48 + -0x48)" * (cast_expression "(undefined4 *)(puVar48 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar51)(uVar41);" (call_expression "(*pcVar51)(uVar41)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = auStack_68;" (assignment_expression "puVar35 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if (((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)) {\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28))" ( (binary_expression "((int)pEVar38 < 0x28) || ((int)pEVar25 - (int)pEVar38 < 0x28)" (parenthesized_expression "((int)pEVar38 < 0x28)" ( (binary_expression "(int)pEVar38 < 0x28" (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)pEVar25 - (int)pEVar38 < 0x28)" ( (binary_expression "(int)pEVar25 - (int)pEVar38 < 0x28" (binary_expression "(int)pEVar25 - (int)pEVar38" (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) ))) )) (compound_statement "{\n      uVar10 = *puVar33;\n      pcVar51 = *(code **)(puVar43 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;\n      *(undefined4 *)(puVar48 + -0x44) = uVar10;\n      pEVar16 = pEVar25;\n      pEVar27 = (Elf32_Ehdr *)e;\n      (*pcVar51)(uVar41);\n      iVar7 = *(int *)(puVar48 + -0x38);\n      puVar35 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar10 = *puVar33;" (assignment_expression "uVar10 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "pcVar51 = *(code **)(puVar43 + 0x6700c);" (assignment_expression "pcVar51 = *(code **)(puVar43 + 0x6700c)" identifier = (pointer_expression "*(code **)(puVar43 + 0x6700c)" * (cast_expression "(code **)(puVar43 + 0x6700c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x6700c)" ( (binary_expression "puVar43 + 0x6700c" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x44) = uVar10;" (assignment_expression "*(undefined4 *)(puVar48 + -0x44) = uVar10" (pointer_expression "*(undefined4 *)(puVar48 + -0x44)" * (cast_expression "(undefined4 *)(puVar48 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x44)" ( (binary_expression "puVar48 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar25;" (assignment_expression "pEVar16 = pEVar25" identifier = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)e;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)e" identifier = (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*pcVar51)(uVar41);" (call_expression "(*pcVar51)(uVar41)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = auStack_68;" (assignment_expression "puVar35 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if ((int)pEVar38 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" if (parenthesized_expression "((int)pEVar38 < 200)" ( (binary_expression "(int)pEVar38 < 200" (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n    }" { (labeled_statement "LAB_00030504:\n      pcVar51 = *(code **)(puVar43 + 0x6709c);" statement_identifier : (expression_statement "pcVar51 = *(code **)(puVar43 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar43 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar43 + 0x6709c)" * (cast_expression "(code **)(puVar43 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x6709c)" ( (binary_expression "puVar43 + 0x6709c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(puVar43 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" { (expression_statement "pcVar51 = *(code **)(puVar43 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar43 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar43 + 0x6709c)" * (cast_expression "(code **)(puVar43 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x6709c)" ( (binary_expression "puVar43 + 0x6709c" identifier + number_literal) ))))) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (if_statement "if (3999 < (int)pEVar25) {\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" if (parenthesized_expression "(3999 < (int)pEVar25)" ( (binary_expression "3999 < (int)pEVar25" number_literal < (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar49 = (undefined1 *)((int)pEVar38 * 4);\n        if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" { (expression_statement "puVar49 = (undefined1 *)((int)pEVar38 * 4);" (assignment_expression "puVar49 = (undefined1 *)((int)pEVar38 * 4)" identifier = (cast_expression "(undefined1 *)((int)pEVar38 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar38 * 4)" ( (binary_expression "(int)pEVar38 * 4" (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25) {\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }" if (parenthesized_expression "((double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25)" ( (binary_expression "(double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar38 * (double)(int)pEVar25" (binary_expression "(double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68)" (binary_expression "(double)(int)pEVar38 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70)" (cast_expression "(double)(int)pEVar38" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70)" * (cast_expression "(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a70)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar43 + 0x66c3c) + -0x2a70)" ( (binary_expression "*(int *)(puVar43 + 0x66c3c) + -0x2a70" (pointer_expression "*(int *)(puVar43 + 0x66c3c)" * (cast_expression "(int *)(puVar43 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x66c3c)" ( (binary_expression "puVar43 + 0x66c3c" identifier + number_literal) )))) + number_literal) ))))) + (binary_expression "(double)(int)pEVar25 * *(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68)" (cast_expression "(double)(int)pEVar25" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68)" * (cast_expression "(double *)(*(int *)(puVar43 + 0x66c3c) + -0x2a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar43 + 0x66c3c) + -0x2a68)" ( (binary_expression "*(int *)(puVar43 + 0x66c3c) + -0x2a68" (pointer_expression "*(int *)(puVar43 + 0x66c3c)" * (cast_expression "(int *)(puVar43 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x66c3c)" ( (binary_expression "puVar43 + 0x66c3c" identifier + number_literal) )))) + number_literal) )))))) <= (binary_expression "(double)(int)pEVar38 * (double)(int)pEVar25" (cast_expression "(double)(int)pEVar38" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar38" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(double)(int)pEVar25" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n          r = (mpz_ptr)(puVar48 + -0x30);\n          pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);\n          iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);\n          uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);\n          *(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;\n          *(undefined4 *)(puVar48 + -0x40) = uVar10;\n          *(mpz_srcptr *)(puVar48 + -0x48) = e;\n          pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);\n          pEVar6 = pEVar9;\n          (**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);\n          iVar7 = *(int *)(puVar48 + -0x38);\n          uVar10._0_1_ = pEVar9->e_ident_magic_num;\n          uVar10._1_1_ = pEVar9->e_ident_magic_str[0];\n          uVar10._2_1_ = pEVar9->e_ident_magic_str[1];\n          uVar10._3_1_ = pEVar9->e_ident_magic_str[2];\n          pEVar38 = pEVar4;\n          pEVar23 = pEVar9;\n          do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);\n          pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);\n          pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar35 = puVar49;\n          goto LAB_0003056c;\n        }" { (expression_statement "r = (mpz_ptr)(puVar48 + -0x30);" (assignment_expression "r = (mpz_ptr)(puVar48 + -0x30)" identifier = (call_expression "(mpz_ptr)(puVar48 + -0x30)" (parenthesized_expression "(mpz_ptr)" ( identifier )) (argument_list "(puVar48 + -0x30)" ( (binary_expression "puVar48 + -0x30" identifier + number_literal) )))) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar43 + 0x66ec0))(r,puVar49)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar43 + 0x66ec0))(r,puVar49)" (parenthesized_expression "(**(code **)(puVar43 + 0x66ec0))" ( (pointer_expression "**(code **)(puVar43 + 0x66ec0)" * (pointer_expression "*(code **)(puVar43 + 0x66ec0)" * (cast_expression "(code **)(puVar43 + 0x66ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar43 + 0x66ec0)" ( (binary_expression "puVar43 + 0x66ec0" identifier + number_literal) ))))) )) (argument_list "(r,puVar49)" ( identifier , identifier ))))) ;) (expression_statement "iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0);" (assignment_expression "iVar7 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0)" identifier = (call_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))(pEVar25,pEVar38,0)" (parenthesized_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c))" ( (pointer_expression "**(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c)" * (pointer_expression "*(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c)" * (cast_expression "(code **)(*(int *)(puVar48 + -0x38) + -0x7e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar48 + -0x38) + -0x7e7c)" ( (binary_expression "*(int *)(puVar48 + -0x38) + -0x7e7c" (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pEVar25,pEVar38,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2);" (assignment_expression "uVar10 = (**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2)" identifier = (call_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))(r,iVar7 << 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50))" ( (pointer_expression "**(code **)(*(int *)(puVar48 + -0x38) + -0x7d50)" * (pointer_expression "*(code **)(*(int *)(puVar48 + -0x38) + -0x7d50)" * (cast_expression "(code **)(*(int *)(puVar48 + -0x38) + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar48 + -0x38) + -0x7d50)" ( (binary_expression "*(int *)(puVar48 + -0x38) + -0x7d50" (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(r,iVar7 << 2)" ( identifier , (binary_expression "iVar7 << 2" identifier << number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x44) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x44)" ( (binary_expression "puVar48 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x40) = uVar10;" (assignment_expression "*(undefined4 *)(puVar48 + -0x40) = uVar10" (pointer_expression "*(undefined4 *)(puVar48 + -0x40)" * (cast_expression "(undefined4 *)(puVar48 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x40)" ( (binary_expression "puVar48 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar48 + -0x48) = e;" (assignment_expression "*(mpz_srcptr *)(puVar48 + -0x48) = e" (pointer_expression "*(mpz_srcptr *)(puVar48 + -0x48)" * (cast_expression "(mpz_srcptr *)(puVar48 + -0x48)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar38[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar38[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar38[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar38[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar38[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar38[-1].e_shstrndx" & (field_expression "pEVar38[-1].e_shstrndx" (subscript_expression "pEVar38[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar6 = pEVar9;" (assignment_expression "pEVar6 = pEVar9" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41);" (call_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))(uVar41)" (parenthesized_expression "(**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc))" ( (pointer_expression "**(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc)" * (pointer_expression "*(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc)" * (cast_expression "(code **)(*(int *)(puVar48 + -0x38) + -0x7ccc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar48 + -0x38) + -0x7ccc)" ( (binary_expression "*(int *)(puVar48 + -0x38) + -0x7ccc" (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar10._0_1_ = pEVar9->e_ident_magic_num;" (assignment_expression "uVar10._0_1_ = pEVar9->e_ident_magic_num" (field_expression "uVar10._0_1_" identifier . field_identifier) = (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar10._1_1_ = pEVar9->e_ident_magic_str[0];" (assignment_expression "uVar10._1_1_ = pEVar9->e_ident_magic_str[0]" (field_expression "uVar10._1_1_" identifier . field_identifier) = (subscript_expression "pEVar9->e_ident_magic_str[0]" (field_expression "pEVar9->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar10._2_1_ = pEVar9->e_ident_magic_str[1];" (assignment_expression "uVar10._2_1_ = pEVar9->e_ident_magic_str[1]" (field_expression "uVar10._2_1_" identifier . field_identifier) = (subscript_expression "pEVar9->e_ident_magic_str[1]" (field_expression "pEVar9->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar10._3_1_ = pEVar9->e_ident_magic_str[2];" (assignment_expression "uVar10._3_1_ = pEVar9->e_ident_magic_str[2]" (field_expression "uVar10._3_1_" identifier . field_identifier) = (subscript_expression "pEVar9->e_ident_magic_str[2]" (field_expression "pEVar9->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (expression_statement "pEVar23 = pEVar9;" (assignment_expression "pEVar23 = pEVar9" identifier = identifier) ;) (do_statement "do {\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n            pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar10;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar10._0_1_ = pEVar23->e_ident_class;\n            uVar10._1_1_ = pEVar23->e_ident_data;\n            uVar10._2_1_ = pEVar23->e_ident_version;\n            uVar10._3_1_ = pEVar23->e_ident_osabi;\n            pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n            pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          }" { (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar10 >> 0x18)" (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar10 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 0x18)" ( (binary_expression "(uint)uVar10 >> 0x18" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar10 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar10 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 0x10)" ( (binary_expression "(uint)uVar10 >> 0x10" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar10 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar10 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar10 >> 8)" ( (binary_expression "(uint)uVar10 >> 8" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[2] = (char)uVar10;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar10" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar10._0_1_ = pEVar23->e_ident_class;" (assignment_expression "uVar10._0_1_ = pEVar23->e_ident_class" (field_expression "uVar10._0_1_" identifier . field_identifier) = (field_expression "pEVar23->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar10._1_1_ = pEVar23->e_ident_data;" (assignment_expression "uVar10._1_1_ = pEVar23->e_ident_data" (field_expression "uVar10._1_1_" identifier . field_identifier) = (field_expression "pEVar23->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar10._2_1_ = pEVar23->e_ident_version;" (assignment_expression "uVar10._2_1_ = pEVar23->e_ident_version" (field_expression "uVar10._2_1_" identifier . field_identifier) = (field_expression "pEVar23->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar10._3_1_ = pEVar23->e_ident_osabi;" (assignment_expression "uVar10._3_1_ = pEVar23->e_ident_osabi" (field_expression "uVar10._3_1_" identifier . field_identifier) = (field_expression "pEVar23->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar23->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar23->e_ident_class" & (field_expression "pEVar23->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 "pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num);" (assignment_expression "pEVar4 = (Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + (int)&pEVar4->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + (int)&pEVar4->e_ident_magic_num)" ( (binary_expression "puVar49 + (int)&pEVar4->e_ident_magic_num" identifier + (cast_expression "(int)&pEVar4->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10);" (assignment_expression "pEVar4[-0xffffffff00000001].e_shnum = (short)((uint)uVar10 >> 0x10)" (field_expression "pEVar4[-0xffffffff00000001].e_shnum" (subscript_expression "pEVar4[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar10 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar10 >> 0x10)" ( (binary_expression "(uint)uVar10 >> 0x10" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10;" (assignment_expression "pEVar4[-0xffffffff00000001].e_shstrndx = (short)uVar10" (field_expression "pEVar4[-0xffffffff00000001].e_shstrndx" (subscript_expression "pEVar4[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar10" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "unaff_s0 = (Elf32_Ehdr *)0x0;" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar35 = puVar49;" (assignment_expression "puVar35 = puVar49" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00030504;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 **)(puVar48 + -0x44) = puVar33;" (assignment_expression "*(undefined4 **)(puVar48 + -0x44) = puVar33" (pointer_expression "*(undefined4 **)(puVar48 + -0x44)" * (cast_expression "(undefined4 **)(puVar48 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x44)" ( (binary_expression "puVar48 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x48) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar25;" (assignment_expression "pEVar16 = pEVar25" identifier = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)e;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)e" identifier = (cast_expression "(Elf32_Ehdr *)e" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*pcVar51)(uVar41);" (call_expression "(*pcVar51)(uVar41)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30);" (assignment_expression "pEVar23 = *(Elf32_Ehdr **)(puVar48 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x30)" ( (binary_expression "puVar48 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x38);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x38)" identifier = (pointer_expression "*(int *)(puVar48 + -0x38)" * (cast_expression "(int *)(puVar48 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x38)" ( (binary_expression "puVar48 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (pEVar23 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }" if (parenthesized_expression "(pEVar23 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar23 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(iVar7 + -0x7a2c);\n      goto LAB_00030534;\n    }" { (expression_statement "pcVar51 = *(code **)(iVar7 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar7 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar7 + -0x7a2c)" * (cast_expression "(code **)(iVar7 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7a2c)" ( (binary_expression "iVar7 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030534;" goto statement_identifier ;) })) }))) (if_statement "if (*(int *)(puVar48 + -0x2c) == *piVar37) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar48 + -0x2c) == *piVar37)" ( (binary_expression "*(int *)(puVar48 + -0x2c) == *piVar37" (pointer_expression "*(int *)(puVar48 + -0x2c)" * (cast_expression "(int *)(puVar48 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x2c)" ( (binary_expression "puVar48 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar37" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar51 = *(code **)(iVar7 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar7 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar7 + -0x7b70)" * (cast_expression "(code **)(iVar7 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7b70)" ( (binary_expression "iVar7 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = reduce;" (assignment_expression "pcVar52 = reduce" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar44 = pcVar51 + 0x6e978;" (assignment_expression "pcVar44 = pcVar51 + 0x6e978" identifier = (binary_expression "pcVar51 + 0x6e978" identifier + number_literal)) ;) (expression_statement "puVar35 = puVar48 + -0xb0;" (assignment_expression "puVar35 = puVar48 + -0xb0" identifier = (binary_expression "puVar48 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(mpz_srcptr *)(puVar48 + -0x70) = e;" (assignment_expression "*(mpz_srcptr *)(puVar48 + -0x70) = e" (pointer_expression "*(mpz_srcptr *)(puVar48 + -0x70)" * (cast_expression "(mpz_srcptr *)(puVar48 + -0x70)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x70)" ( (binary_expression "puVar48 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x68) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x68)" ( (binary_expression "puVar48 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)((int)pEVar16 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar16 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 4)" ( (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);" (assignment_expression "pEVar39 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar51 + 0x66e78)" * (cast_expression "(Elf32_Ehdr **)(pcVar51 + 0x66e78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66e78)" ( (binary_expression "pcVar51 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar48 + -0x60) = puVar49;" (assignment_expression "*(undefined1 **)(puVar48 + -0x60) = puVar49" (pointer_expression "*(undefined1 **)(puVar48 + -0x60)" * (cast_expression "(undefined1 **)(puVar48 + -0x60)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x60)" ( (binary_expression "puVar48 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_ptr *)(puVar48 + -100) = r;" (assignment_expression "*(mpz_ptr *)(puVar48 + -100) = r" (pointer_expression "*(mpz_ptr *)(puVar48 + -100)" * (cast_expression "(mpz_ptr *)(puVar48 + -100)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -100)" ( (binary_expression "puVar48 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x6c) = uVar41;" (assignment_expression "*(undefined4 *)(puVar48 + -0x6c) = uVar41" (pointer_expression "*(undefined4 *)(puVar48 + -0x6c)" * (cast_expression "(undefined4 *)(puVar48 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x6c)" ( (binary_expression "puVar48 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x74) = pEVar4" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x74)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x74)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x74)" ( (binary_expression "puVar48 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x78) = pEVar25" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x78)" ( (binary_expression "puVar48 + -0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x80) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x80)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x80)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x80)" ( (binary_expression "puVar48 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar48 + -0x5c) = pcVar52;" (assignment_expression "*(code **)(puVar48 + -0x5c) = pcVar52" (pointer_expression "*(code **)(puVar48 + -0x5c)" * (cast_expression "(code **)(puVar48 + -0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x5c)" ( (binary_expression "puVar48 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar48 + -0x7c) = piVar37;" (assignment_expression "*(int **)(puVar48 + -0x7c) = piVar37" (pointer_expression "*(int **)(puVar48 + -0x7c)" * (cast_expression "(int **)(puVar48 + -0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x7c)" ( (binary_expression "puVar48 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar48 + -0x98) = pcVar44;" (assignment_expression "*(code **)(puVar48 + -0x98) = pcVar44" (pointer_expression "*(code **)(puVar48 + -0x98)" * (cast_expression "(code **)(puVar48 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x98)" ( (binary_expression "puVar48 + -0x98" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar48 + -0x88) = 0" (pointer_expression "*(undefined4 *)(puVar48 + -0x88)" * (cast_expression "(undefined4 *)(puVar48 + -0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x88)" ( (binary_expression "puVar48 + -0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48);" (assignment_expression "pEVar9 = *(Elf32_Ehdr **)(puVar48 + -0x48)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x48)" ( (binary_expression "puVar48 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44);" (assignment_expression "pEVar4 = *(Elf32_Ehdr **)(puVar48 + -0x44)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x44)" ( (binary_expression "puVar48 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num;" (assignment_expression "*(undefined4 *)(puVar48 + -0x84) = *(undefined4 *)&pEVar39->e_ident_magic_num" (pointer_expression "*(undefined4 *)(puVar48 + -0x84)" * (cast_expression "(undefined4 *)(puVar48 + -0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x84)" ( (binary_expression "puVar48 + -0x84" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar39->e_ident_magic_num" * (cast_expression "(undefined4 *)&pEVar39->e_ident_magic_num" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier))))) ;) (if_statement "if (pEVar42 < (Elf32_Ehdr *)0x7f01) {\n    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);\n    puVar35 = puVar48 + iVar7 + -0xb0;\n    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" if (parenthesized_expression "(pEVar42 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar42 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);\n    puVar35 = puVar48 + iVar7 + -0xb0;\n    pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);\n  }" { (expression_statement "iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar7 = -((uint)&pEVar42->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar42->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar42->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar42->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar42->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar42->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar35 = puVar48 + iVar7 + -0xb0;" (assignment_expression "puVar35 = puVar48 + iVar7 + -0xb0" identifier = (binary_expression "puVar48 + iVar7 + -0xb0" (binary_expression "puVar48 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(puVar48 + iVar7 + -0x98)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar48 + iVar7 + -0x98)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + iVar7 + -0x98)" ( (binary_expression "puVar48 + iVar7 + -0x98" (binary_expression "puVar48 + iVar7" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);\n    pcVar44 = *(code **)(puVar48 + -0x98);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + 0x66c28);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + 0x66c28)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x66c28)" * (cast_expression "(code **)(pcVar51 + 0x66c28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66c28)" ( (binary_expression "pcVar51 + 0x66c28" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x8c)" ( (binary_expression "puVar48 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42)" identifier = (cast_expression "(Elf32_Ehdr *)(*pcVar51)(puVar48 + -0x88,pEVar42)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar48 + -0x88,pEVar42)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar48 + -0x88,pEVar42)" ( (binary_expression "puVar48 + -0x88" identifier + number_literal) , identifier ))))) ;) (expression_statement "pcVar44 = *(code **)(puVar48 + -0x98);" (assignment_expression "pcVar44 = *(code **)(puVar48 + -0x98)" identifier = (pointer_expression "*(code **)(puVar48 + -0x98)" * (cast_expression "(code **)(puVar48 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x98)" ( (binary_expression "puVar48 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x8c)" ( (binary_expression "puVar48 + -0x8c" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4;" (assignment_expression "uVar5 = (int)((int)pEVar16 + (1 - (int)pEVar9)) * 4" identifier = (binary_expression "(int)((int)pEVar16 + (1 - (int)pEVar9)) * 4" (cast_expression "(int)((int)pEVar16 + (1 - (int)pEVar9))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pEVar16 + (1 - (int)pEVar9))" ( (binary_expression "(int)pEVar16 + (1 - (int)pEVar9)" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)pEVar9)" ( (binary_expression "1 - (int)pEVar9" number_literal - (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "pcVar51 = *(code **)(pcVar44 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar44 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar44 + -0x7d50)" * (cast_expression "(code **)(pcVar44 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7d50)" ( (binary_expression "pcVar44 + -0x7d50" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 < 0x7f01) {\n    iVar7 = -(uVar5 + 7 & 0xfffffff8);\n    puVar49 = puVar35 + iVar7 + 0x18;\n    puVar35 = puVar35 + iVar7;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" if (parenthesized_expression "(uVar5 < 0x7f01)" ( (binary_expression "uVar5 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar7 = -(uVar5 + 7 & 0xfffffff8);\n    puVar49 = puVar35 + iVar7 + 0x18;\n    puVar35 = puVar35 + iVar7;\n  }" { (expression_statement "iVar7 = -(uVar5 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar5 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar5 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar5 + 7 & 0xfffffff8)" ( (binary_expression "uVar5 + 7 & 0xfffffff8" (binary_expression "uVar5 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar49 = puVar35 + iVar7 + 0x18;" (assignment_expression "puVar49 = puVar35 + iVar7 + 0x18" identifier = (binary_expression "puVar35 + iVar7 + 0x18" (binary_expression "puVar35 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "puVar35 = puVar35 + iVar7;" (assignment_expression "puVar35 = puVar35 + iVar7" identifier = (binary_expression "puVar35 + iVar7" identifier + identifier)) ;) }) (else_clause "else {\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" else (compound_statement "{\n    *(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);\n    pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);\n  }" { (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x8c)" ( (binary_expression "puVar48 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88);" (assignment_expression "puVar49 = (undefined1 *)(*pcVar51)(puVar48 + -0x88)" identifier = (cast_expression "(undefined1 *)(*pcVar51)(puVar48 + -0x88)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar48 + -0x88)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar48 + -0x88)" ( (binary_expression "puVar48 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar48 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x8c)" ( (binary_expression "puVar48 + -0x8c" identifier + number_literal) ))))) ;) }))) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar41._0_1_ = pEVar6->e_ident_magic_num;\n    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];\n    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];\n    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];\n    pEVar25 = pEVar38;\n    pEVar42 = pEVar6;\n    if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }\n  }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar41._0_1_ = pEVar6->e_ident_magic_num;\n    uVar41._1_1_ = pEVar6->e_ident_magic_str[0];\n    uVar41._2_1_ = pEVar6->e_ident_magic_str[1];\n    uVar41._3_1_ = pEVar6->e_ident_magic_str[2];\n    pEVar25 = pEVar38;\n    pEVar42 = pEVar6;\n    if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }\n  }" { (expression_statement "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar41._0_1_ = pEVar6->e_ident_magic_num;" (assignment_expression "uVar41._0_1_ = pEVar6->e_ident_magic_num" (field_expression "uVar41._0_1_" identifier . field_identifier) = (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar41._1_1_ = pEVar6->e_ident_magic_str[0];" (assignment_expression "uVar41._1_1_ = pEVar6->e_ident_magic_str[0]" (field_expression "uVar41._1_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar41._2_1_ = pEVar6->e_ident_magic_str[1];" (assignment_expression "uVar41._2_1_ = pEVar6->e_ident_magic_str[1]" (field_expression "uVar41._2_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar41._3_1_ = pEVar6->e_ident_magic_str[2];" (assignment_expression "uVar41._3_1_ = pEVar6->e_ident_magic_str[2]" (field_expression "uVar41._3_1_" identifier . field_identifier) = (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar25 = pEVar38;" (assignment_expression "pEVar25 = pEVar38" identifier = identifier) ;) (expression_statement "pEVar42 = pEVar6;" (assignment_expression "pEVar42 = pEVar6" identifier = identifier) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }\n    else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar38->e_ident_magic_str[2] = (char)uVar41;\n      pEVar42 = pEVar38;\n    }" { (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar41 >> 0x18)" (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[2] = (char)uVar41;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar41" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar42 = pEVar38;" (assignment_expression "pEVar42 = pEVar38" identifier = identifier) ;) }) (else_clause "else {\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }" else (compound_statement "{\n      do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);\n      pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n      pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n      pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n      pEVar42->e_ident_magic_str[2] = (char)uVar41;\n    }" { (do_statement "do {\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n        pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);\n        pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);\n        pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);\n        pEVar25->e_ident_magic_str[2] = (char)uVar41;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        uVar41._0_1_ = pEVar42->e_ident_class;\n        uVar41._1_1_ = pEVar42->e_ident_data;\n        uVar41._2_1_ = pEVar42->e_ident_version;\n        uVar41._3_1_ = pEVar42->e_ident_osabi;\n        pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n        pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n      }" { (expression_statement "pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);" (assignment_expression "pEVar25->e_ident_magic_num = (char)((uint)uVar41 >> 0x18)" (field_expression "pEVar25->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "pEVar25->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "pEVar25->e_ident_magic_str[0]" (field_expression "pEVar25->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);" (assignment_expression "pEVar25->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8)" (subscript_expression "pEVar25->e_ident_magic_str[1]" (field_expression "pEVar25->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar25->e_ident_magic_str[2] = (char)uVar41;" (assignment_expression "pEVar25->e_ident_magic_str[2] = (char)uVar41" (subscript_expression "pEVar25->e_ident_magic_str[2]" (field_expression "pEVar25->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar41._0_1_ = pEVar42->e_ident_class;" (assignment_expression "uVar41._0_1_ = pEVar42->e_ident_class" (field_expression "uVar41._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar41._1_1_ = pEVar42->e_ident_data;" (assignment_expression "uVar41._1_1_ = pEVar42->e_ident_data" (field_expression "uVar41._1_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar41._2_1_ = pEVar42->e_ident_version;" (assignment_expression "uVar41._2_1_ = pEVar42->e_ident_version" (field_expression "uVar41._2_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar41._3_1_ = pEVar42->e_ident_osabi;" (assignment_expression "uVar41._3_1_ = pEVar42->e_ident_osabi" (field_expression "uVar41._3_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar25->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->e_ident_class" & (field_expression "pEVar25->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar42->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->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 "pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar38[-1].e_shnum + (int)pEVar16 * 2)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar38[-1].e_shnum + (int)pEVar16 * 2)" ( (binary_expression "&pEVar38[-1].e_shnum + (int)pEVar16 * 2" (pointer_expression "&pEVar38[-1].e_shnum" & (field_expression "pEVar38[-1].e_shnum" (subscript_expression "pEVar38[-1]" identifier [ number_literal ]) . field_identifier)) + (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18);" (assignment_expression "pEVar42->e_ident_magic_num = (char)((uint)uVar41 >> 0x18)" (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "pEVar42->e_ident_magic_str[0] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8);" (assignment_expression "pEVar42->e_ident_magic_str[1] = (char)((uint)uVar41 >> 8)" (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar42->e_ident_magic_str[2] = (char)uVar41;" (assignment_expression "pEVar42->e_ident_magic_str[2] = (char)uVar41" (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar35 + 0x14) = puVar49;" (assignment_expression "*(undefined1 **)(puVar35 + 0x14) = puVar49" (pointer_expression "*(undefined1 **)(puVar35 + 0x14)" * (cast_expression "(undefined1 **)(puVar35 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x14)" ( (binary_expression "puVar35 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + 0x10) = pEVar4" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x10)" ( (binary_expression "puVar35 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar25 = pEVar16;" (assignment_expression "pEVar25 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar31 = pEVar9;" (assignment_expression "pEVar31 = pEVar9" identifier = identifier) ;) (expression_statement "mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14));" (call_expression "mod((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14))" identifier (argument_list "((mp_ptr)pEVar38,(mp_size_t)pEVar16,(mp_srcptr)pEVar27,(mp_size_t)pEVar9,\n      *(gmp_pi1_t **)(puVar35 + 0x10),*(mp_ptr *)(puVar35 + 0x14))" ( (cast_expression "(mp_ptr)pEVar38" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , (cast_expression "(mp_size_t)pEVar16" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , (cast_expression "(mp_srcptr)pEVar27" ( (type_descriptor "mp_srcptr" type_identifier) ) identifier) , (cast_expression "(mp_size_t)pEVar9" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , (pointer_expression "*(gmp_pi1_t **)(puVar35 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar35 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x10)" ( (binary_expression "puVar35 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar35 + 0x14)" * (cast_expression "(mp_ptr *)(puVar35 + 0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + 0x14)" ( (binary_expression "puVar35 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x98);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x98)" identifier = (pointer_expression "*(int *)(puVar48 + -0x98)" * (cast_expression "(int *)(puVar48 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x98)" ( (binary_expression "puVar48 + -0x98" identifier + number_literal) ))))) ;) (if_statement "if (pEVar9 != (Elf32_Ehdr *)0x0) {\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;\n    pEVar20 = pEVar23;\n    pEVar11 = pEVar38;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }\n    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n  }" if (parenthesized_expression "(pEVar9 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;\n    pEVar20 = pEVar23;\n    pEVar11 = pEVar38;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }\n    *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n  }" { (expression_statement "pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar9[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar9[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar9[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar9[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar9[-1].e_shstrndx" & (field_expression "pEVar9[-1].e_shstrndx" (subscript_expression "pEVar9[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pEVar20 = pEVar23;" (assignment_expression "pEVar20 = pEVar23" identifier = identifier) ;) (expression_statement "pEVar11 = pEVar38;" (assignment_expression "pEVar11 = pEVar38" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);\n      pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));\n    }" { (do_statement "do {\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;\n        pwVar8 = (word *)((int)pwVar8 + -1);\n        pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;\n        pEVar20 = (Elf32_Ehdr *)&pEVar20->e_ident_class;\n        pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar20->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar20->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar20->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar20->e_ident_magic_num" & (field_expression "pEVar20->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 "pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar11->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar11->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar11->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar11->e_ident_class" & (field_expression "pEVar11->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)))) ;) (expression_statement "pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class;" (assignment_expression "pEVar11 = (Elf32_Ehdr *)&pEVar11->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar11->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar11->e_ident_class" & (field_expression "pEVar11->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 "pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)((int)pEVar9 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar9 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar9 * 4 + -4)" ( (binary_expression "(int)pEVar9 * 4 + -4" (binary_expression "(int)pEVar9 * 4" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2));" (assignment_expression "pEVar23 = (Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2))" ( (binary_expression "pEVar9->e_ident_magic_str + (int)(pEVar23->e_ident_magic_str + -2)" (field_expression "pEVar9->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar23->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar23->e_ident_magic_str + -2)" ( (binary_expression "pEVar23->e_ident_magic_str + -2" (field_expression "pEVar23->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar23->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "piVar37 = *(int **)(puVar48 + -0x88);" (assignment_expression "piVar37 = *(int **)(puVar48 + -0x88)" identifier = (pointer_expression "*(int **)(puVar48 + -0x88)" * (cast_expression "(int **)(puVar48 + -0x88)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x88)" ( (binary_expression "puVar48 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (piVar37 != (int *)0x0) {\n    (**(code **)(iVar7 + -0x7a2c))();\n    iVar7 = *(int *)(puVar48 + -0x98);\n  }" if (parenthesized_expression "(piVar37 != (int *)0x0)" ( (binary_expression "piVar37 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(iVar7 + -0x7a2c))();\n    iVar7 = *(int *)(puVar48 + -0x98);\n  }" { (expression_statement "(**(code **)(iVar7 + -0x7a2c))();" (call_expression "(**(code **)(iVar7 + -0x7a2c))()" (parenthesized_expression "(**(code **)(iVar7 + -0x7a2c))" ( (pointer_expression "**(code **)(iVar7 + -0x7a2c)" * (pointer_expression "*(code **)(iVar7 + -0x7a2c)" * (cast_expression "(code **)(iVar7 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7a2c)" ( (binary_expression "iVar7 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x98);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x98)" identifier = (pointer_expression "*(int *)(puVar48 + -0x98)" * (cast_expression "(int *)(puVar48 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x98)" ( (binary_expression "puVar48 + -0x98" identifier + number_literal) ))))) ;) })) (expression_statement "iVar34._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "iVar34._0_1_ = pEVar39->e_ident_magic_num" (field_expression "iVar34._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar34._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "iVar34._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "iVar34._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar34._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "iVar34._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "iVar34._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar34._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "iVar34._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "iVar34._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (*(int *)(puVar48 + -0x84) == iVar34) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar48 + -0x84) == iVar34)" ( (binary_expression "*(int *)(puVar48 + -0x84) == iVar34" (pointer_expression "*(int *)(puVar48 + -0x84)" * (cast_expression "(int *)(puVar48 + -0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x84)" ( (binary_expression "puVar48 + -0x84" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar44 = *(code **)(iVar7 + -0x7b70);" (assignment_expression "pcVar44 = *(code **)(iVar7 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar7 + -0x7b70)" * (cast_expression "(code **)(iVar7 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7b70)" ( (binary_expression "iVar7 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_powm_ui;" (assignment_expression "pcVar52 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "(*pcVar44)();" (call_expression "(*pcVar44)()" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = pcVar44 + 0x6e770;" (assignment_expression "pcVar51 = pcVar44 + 0x6e770" identifier = (binary_expression "pcVar44 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar33 = *(undefined4 **)(pcVar44 + 0x66c70);" (assignment_expression "puVar33 = *(undefined4 **)(pcVar44 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(pcVar44 + 0x66c70)" * (cast_expression "(undefined4 **)(pcVar44 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + 0x66c70)" ( (binary_expression "pcVar44 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar47 = puVar35 + -0xa0;" (assignment_expression "puVar47 = puVar35 + -0xa0" identifier = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar49 = puVar35 + -0xa0;" (assignment_expression "puVar49 = puVar35 + -0xa0" identifier = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar46 = puVar35 + -0xa0;" (assignment_expression "puVar46 = puVar35 + -0xa0" identifier = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0;" (assignment_expression "*(undefined1 **)(puVar35 + -8) = puVar48 + -0xb0" (pointer_expression "*(undefined1 **)(puVar35 + -8)" * (cast_expression "(undefined1 **)(puVar35 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -8)" ( (binary_expression "puVar35 + -8" identifier + number_literal) )))) = (binary_expression "puVar48 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x20) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x20)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x20)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x20)" ( (binary_expression "puVar35 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar35 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar35 + -4) = pcVar52" (pointer_expression "*(code **)(puVar35 + -4)" * (cast_expression "(code **)(puVar35 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -4)" ( (binary_expression "puVar35 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar35 + -0x58) = puVar33;" (assignment_expression "*(undefined4 **)(puVar35 + -0x58) = puVar33" (pointer_expression "*(undefined4 **)(puVar35 + -0x58)" * (cast_expression "(undefined4 **)(puVar35 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x58)" ( (binary_expression "puVar35 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0xc) = pEVar4" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0xc)" ( (binary_expression "puVar35 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x10) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x10)" ( (binary_expression "puVar35 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x14)" ( (binary_expression "puVar35 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x18) = pEVar39" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x18)" ( (binary_expression "puVar35 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x1c) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x1c)" ( (binary_expression "puVar35 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x24) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x24)" ( (binary_expression "puVar35 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x28) = pEVar23" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x28)" ( (binary_expression "puVar35 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar35 + -0x88) = pcVar51;" (assignment_expression "*(code **)(puVar35 + -0x88) = pcVar51" (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar35 + -0x54) = piVar37;" (assignment_expression "*(int **)(puVar35 + -0x54) = piVar37" (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x5c) = pEVar25" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x5c)" ( (binary_expression "puVar35 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x68) = pEVar31" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x68)" ( (binary_expression "puVar35 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar35 + -0x2c) = *puVar33;" (assignment_expression "*(undefined4 *)(puVar35 + -0x2c) = *puVar33" (pointer_expression "*(undefined4 *)(puVar35 + -0x2c)" * (cast_expression "(undefined4 *)(puVar35 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x2c)" ( (binary_expression "puVar35 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "pEVar6 = pEVar27;" (assignment_expression "pEVar6 = pEVar27" identifier = identifier) ;) (if_statement "if (pEVar27 < (Elf32_Ehdr *)0x14) {\n    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;\n    pEVar42 = pEVar11;\n    if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }\n    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;\n    if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;\n    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);\n    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);\n    uVar54 = uVar55;\n    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar5 << 0x10 | uVar54;\n    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);\n    uVar5 = uVar54;\n    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }\n    *(uint *)(puVar35 + -0x44) = uVar5;\n    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);\n    pEVar9 = pEVar31;\n    if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }\n    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);\n    if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar5 = *(int *)(puVar35 + -0x50) + 4;\n    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);\n    *(uint *)(puVar35 + -0x70) = uVar5;\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    tp = *(mp_ptr *)(puVar35 + -100);\n    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;\n    pEVar25 = pEVar39;\n    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));\n    pcVar51 = *(code **)(puVar35 + -0x88);\n    pEVar9 = pEVar42;\n    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }\n    puVar33 = *(undefined4 **)(puVar35 + -100);\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = (Elf32_Ehdr *)*puVar33;\n    pEVar38 = pEVar4;\n    pwVar13 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);\n    iVar7 = 0x1f - (int)pEVar23;\n    pEVar16 = pEVar9;\n    if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }\nLAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;\n    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);\n    if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);\n    piVar12 = *(int **)(puVar35 + -0x58);\n    if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }" if (parenthesized_expression "(pEVar27 < (Elf32_Ehdr *)0x14)" ( (binary_expression "pEVar27 < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;\n    *(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;\n    pEVar42 = pEVar11;\n    if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }\n    *(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;\n    if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;\n    pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);\n    pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);\n    uVar54 = uVar55;\n    if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar5 << 0x10 | uVar54;\n    pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);\n    uVar5 = uVar54;\n    if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }\n    *(uint *)(puVar35 + -0x44) = uVar5;\n    pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);\n    pEVar9 = pEVar31;\n    if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }\n    pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);\n    if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar5 = *(int *)(puVar35 + -0x50) + 4;\n    pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);\n    *(uint *)(puVar35 + -0x70) = uVar5;\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    tp = *(mp_ptr *)(puVar35 + -100);\n    pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;\n    pEVar25 = pEVar39;\n    reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));\n    pcVar51 = *(code **)(puVar35 + -0x88);\n    pEVar9 = pEVar42;\n    if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }\n    puVar33 = *(undefined4 **)(puVar35 + -100);\n    pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);\n    pEVar25 = (Elf32_Ehdr *)*puVar33;\n    pEVar38 = pEVar4;\n    pwVar13 = pwVar8;\n    if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }\n    *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n    pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);\n    iVar7 = 0x1f - (int)pEVar23;\n    pEVar16 = pEVar9;\n    if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }\nLAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;\n    pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);\n    if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);\n    piVar12 = *(int **)(puVar35 + -0x58);\n    if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar11 = *(Elf32_Ehdr **)&pEVar31->e_ident_class;" (assignment_expression "pEVar11 = *(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 "*(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar35 + -0x4c) = *(undefined4 *)&pEVar31->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar35 + -0x4c)" * (cast_expression "(undefined4 *)(puVar35 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar31->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar31->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->e_ident_abiversion" & (field_expression "pEVar31->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar42 = pEVar11;" (assignment_expression "pEVar42 = pEVar11" identifier = identifier) ;) (if_statement "if ((int)pEVar11 < 0) {\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }" if (parenthesized_expression "((int)pEVar11 < 0)" ( (binary_expression "(int)pEVar11 < 0" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;\n    }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)-(int)pEVar11;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)-(int)pEVar11" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar11" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar11" - (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x78) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar11 == (Elf32_Ehdr *)0x0) {\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar11 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar11 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar9 = pEVar27;\n      uVar56 = (**(code **)(pcVar44 + 0x66d0c))();\nLAB_00031228:\n      uVar5 = (uint)uVar56;\n      pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));\n      puVar49 = puVar47;\n    }" { (expression_statement "pEVar9 = pEVar27;" (assignment_expression "pEVar9 = pEVar27" identifier = identifier) ;) (expression_statement "uVar56 = (**(code **)(pcVar44 + 0x66d0c))();" (assignment_expression "uVar56 = (**(code **)(pcVar44 + 0x66d0c))()" identifier = (call_expression "(**(code **)(pcVar44 + 0x66d0c))()" (parenthesized_expression "(**(code **)(pcVar44 + 0x66d0c))" ( (pointer_expression "**(code **)(pcVar44 + 0x66d0c)" * (pointer_expression "*(code **)(pcVar44 + 0x66d0c)" * (cast_expression "(code **)(pcVar44 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + 0x66d0c)" ( (binary_expression "pcVar44 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar5 = (uint)uVar56;" statement_identifier : (expression_statement "uVar5 = (uint)uVar56;" (assignment_expression "uVar5 = (uint)uVar56" identifier = (cast_expression "(uint)uVar56" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20));" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20))" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20))" ( (binary_expression "&pEVar25->e_ident_magic_num + (int)((ulonglong)uVar56 >> 0x20)" (pointer_expression "&pEVar25->e_ident_magic_num" & (field_expression "pEVar25->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)((ulonglong)uVar56 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar56 >> 0x20)" ( (binary_expression "(ulonglong)uVar56 >> 0x20" (cast_expression "(ulonglong)uVar56" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )))) ;) (expression_statement "puVar49 = puVar47;" (assignment_expression "puVar49 = puVar47" identifier = identifier) ;) }) (else_clause "else {\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);\n      if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar35 + -0x40) = 0;\n      *(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;\n      pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);\n      if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }\n      pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);\n      iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];\n      *(int *)(puVar35 + -0x6c) = iVar7;\n      puVar47 = puVar35 + -0xa0;\n      if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }\n      if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }\n      pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);\n      pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);\n      if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar25 / (uint)pEVar9;\n      in_t2 = (byte *)((uint)pEVar25 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);\n      uVar5 = uVar54;\n      in_t1 = pEVar31;\n      puVar49 = puVar47;\n      if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)((int)pEVar42 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar42 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar42 * 4)" ( (binary_expression "(int)pEVar42 * 4" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\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        uVar5 = 1;\n        if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }\n        piVar37 = *(int **)(puVar35 + -0x54);\n        piVar37[1] = uVar5;\n        *(undefined4 *)piVar37[2] = 1;\n        puVar49 = puVar35 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar42 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar42 == (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          uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);\n        }" { (expression_statement "uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1);" (assignment_expression "uVar5 = (uint)(**(int **)(puVar35 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar35 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar35 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar35 + -0x4c) != 1" (pointer_expression "**(int **)(puVar35 + -0x4c)" * (pointer_expression "*(int **)(puVar35 + -0x4c)" * (cast_expression "(int **)(puVar35 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar37 = *(int **)(puVar35 + -0x54);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar37[1] = uVar5;" (assignment_expression "piVar37[1] = uVar5" (subscript_expression "piVar37[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar37[2] = 1;" (assignment_expression "*(undefined4 *)piVar37[2] = 1" (pointer_expression "*(undefined4 *)piVar37[2]" * (cast_expression "(undefined4 *)piVar37[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar37[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar49 = puVar35 + -0xa0;" (assignment_expression "puVar49 = puVar35 + -0xa0" identifier = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar35 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar35 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar35 + -0x40)" * (cast_expression "(undefined4 *)(puVar35 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum;" (assignment_expression "*(word **)(puVar35 + -0x50) = &pEVar38[-1].e_shnum" (pointer_expression "*(word **)(puVar35 + -0x50)" * (cast_expression "(word **)(puVar35 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar38[-1].e_shnum" & (field_expression "pEVar38[-1].e_shnum" (subscript_expression "pEVar38[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum);" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum)" ( (binary_expression "*(int *)(puVar35 + -0x4c) + (int)&pEVar38[-1].e_shnum" (pointer_expression "*(int *)(puVar35 + -0x4c)" * (cast_expression "(int *)(puVar35 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar38[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar38[-1].e_shnum" & (field_expression "pEVar38[-1].e_shnum" (subscript_expression "pEVar38[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar25 < &Elf32_Ehdr_00010000) {\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }\n      else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar25 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar25 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar7 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }\n        iVar36 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }\n      }" { (expression_statement "iVar7 = 0x20;" (assignment_expression "iVar7 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar25) {\n          iVar7 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar25)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar25" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar7 = 0x18;\n        }" { (expression_statement "iVar7 = 0x18;" (assignment_expression "iVar7 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar36 = 9;" (assignment_expression "iVar36 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar25) {\n          iVar36 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar25)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar25" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar36 = 1;\n        }" { (expression_statement "iVar36 = 1;" (assignment_expression "iVar36 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar7 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }\n        iVar36 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }\n      }" { (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar25) {\n          iVar7 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar25)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar25" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar7 = 8;\n        }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) })) (expression_statement "iVar36 = 0x19;" (assignment_expression "iVar36 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar25) {\n          iVar36 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar25)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar25" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar36 = 0x11;\n        }" { (expression_statement "iVar36 = 0x11;" (assignment_expression "iVar36 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc);" (assignment_expression "pEVar23 = *(Elf32_Ehdr **)(pcVar44 + 0x668bc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar44 + 0x668bc)" * (cast_expression "(Elf32_Ehdr **)(pcVar44 + 0x668bc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + 0x668bc)" ( (binary_expression "pcVar44 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36];" (assignment_expression "iVar7 = iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36]" identifier = (binary_expression "iVar7 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36]" identifier - (subscript_expression "(uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar25 >> iVar36]" (call_expression "(uint)(&pEVar23->e_ident_magic_num)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&pEVar23->e_ident_magic_num)" ( (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)) ))) [ (binary_expression "(uint)pEVar25 >> iVar36" (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) ;) (expression_statement "*(int *)(puVar35 + -0x6c) = iVar7;" (assignment_expression "*(int *)(puVar35 + -0x6c) = iVar7" (pointer_expression "*(int *)(puVar35 + -0x6c)" * (cast_expression "(int *)(puVar35 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x6c)" ( (binary_expression "puVar35 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar47 = puVar35 + -0xa0;" (assignment_expression "puVar47 = puVar35 + -0xa0" identifier = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar7 != 0) {\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        *(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;\n        pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));\n        puVar47 = puVar46;\n      }" { (if_statement "if (*(int *)(puVar35 + -0x50) + 4U < 0x7f01) {\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }\n        else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar35 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar35 + -0x50) + 4U" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n          puVar46 = puVar35 + iVar7 + -0xa0;\n          pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);\n        }" { (expression_statement "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar35 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar46 = puVar35 + iVar7 + -0xa0;" (assignment_expression "puVar46 = puVar35 + iVar7 + -0xa0" identifier = (binary_expression "puVar35 + iVar7 + -0xa0" (binary_expression "puVar35 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(puVar35 + iVar7 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar35 + iVar7 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + iVar7 + -0x88)" ( (binary_expression "puVar35 + iVar7 + -0x88" (binary_expression "puVar35 + iVar7" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }" else (compound_statement "{\n          pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n        }" { (expression_statement "pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar44 + 0x66a20))(puVar35 + -0x40)" (parenthesized_expression "(**(code **)(pcVar44 + 0x66a20))" ( (pointer_expression "**(code **)(pcVar44 + 0x66a20)" * (pointer_expression "*(code **)(pcVar44 + 0x66a20)" * (cast_expression "(code **)(pcVar44 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + 0x66a20)" ( (binary_expression "pcVar44 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  );" (call_expression "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar38,*(undefined4 *)(puVar35 + -0x4c),pEVar42,*(undefined4 *)(puVar35 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar35 + -0x4c)" * (cast_expression "(undefined4 *)(puVar35 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar35 + -0x6c)" * (cast_expression "(undefined4 *)(puVar35 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x6c)" ( (binary_expression "puVar35 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x4c) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50));" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50))" identifier = (pointer_expression "*(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50))" * (cast_expression "(Elf32_Ehdr **)(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50))" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50))" ( (binary_expression "&pEVar38->e_ident_magic_num + *(int *)(puVar35 + -0x50)" (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar47 = puVar46;" (assignment_expression "puVar47 = puVar46" identifier = identifier) ;) })) (if_statement "if (pEVar42 == (Elf32_Ehdr *)&DAT_00000001) {\n        FUN_00030a38();\n        return;\n      }" if (parenthesized_expression "(pEVar42 == (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar42 == (Elf32_Ehdr *)&DAT_00000001" identifier == (cast_expression "(Elf32_Ehdr *)&DAT_00000001" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n        FUN_00030a38();\n        return;\n      }" { (expression_statement "FUN_00030a38();" (call_expression "FUN_00030a38()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4);" (assignment_expression "pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50) + -4" (binary_expression "*(int *)(puVar35 + -0x4c) + *(int *)(puVar35 + -0x50)" (pointer_expression "*(int *)(puVar35 + -0x4c)" * (cast_expression "(int *)(puVar35 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)((uint)pEVar25 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar25 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar25 >> 0x10)" ( (binary_expression "(uint)pEVar25 >> 0x10" (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar9 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar9 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 == (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 "uVar54 = ~(uint)pEVar25 / (uint)pEVar9;" (assignment_expression "uVar54 = ~(uint)pEVar25 / (uint)pEVar9" identifier = (binary_expression "~(uint)pEVar25 / (uint)pEVar9" (unary_expression "~(uint)pEVar25" ~ (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "in_t2 = (byte *)((uint)pEVar25 & 0xffff);" (assignment_expression "in_t2 = (byte *)((uint)pEVar25 & 0xffff)" identifier = (cast_expression "(byte *)((uint)pEVar25 & 0xffff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar25 & 0xffff)" ( (binary_expression "(uint)pEVar25 & 0xffff" (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);" (assignment_expression "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54)" identifier = (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar54)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar54)" ( (binary_expression "(int)in_t2 * uVar54" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff);" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar25 % (uint)pEVar9 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar25 % (uint)pEVar9 << 0x10" (binary_expression "~(uint)pEVar25 % (uint)pEVar9" (unary_expression "~(uint)pEVar25" ~ (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar5 = uVar54;" (assignment_expression "uVar5 = uVar54" identifier = identifier) ;) (expression_statement "in_t1 = pEVar31;" (assignment_expression "in_t1 = pEVar31" identifier = identifier) ;) (expression_statement "puVar49 = puVar47;" (assignment_expression "puVar49 = puVar47" identifier = identifier) ;) (if_statement "if (pEVar39 < in_t3) {\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar39 < in_t3)" ( (binary_expression "pEVar39 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);\n        uVar5 = uVar54 - 1;\n        if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num);" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num)" ( (binary_expression "&pEVar25->e_ident_magic_num + (int)&pEVar39->e_ident_magic_num" (pointer_expression "&pEVar25->e_ident_magic_num" & (field_expression "pEVar25->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar39->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar5 = uVar54 - 1;" (assignment_expression "uVar5 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3))" ( (binary_expression "(pEVar25 <= pEVar39) && (uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3)" (parenthesized_expression "(pEVar25 <= pEVar39)" ( (binary_expression "pEVar25 <= pEVar39" identifier <= identifier) )) && (parenthesized_expression "(uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3)" ( (comma_expression "uVar56 = CONCAT44(pEVar39,uVar54 - 2), pEVar39 < in_t3" (assignment_expression "uVar56 = CONCAT44(pEVar39,uVar54 - 2)" identifier = (call_expression "CONCAT44(pEVar39,uVar54 - 2)" identifier (argument_list "(pEVar39,uVar54 - 2)" ( identifier , (binary_expression "uVar54 - 2" identifier - number_literal) )))) , (binary_expression "pEVar39 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar9 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar9 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 == (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 "uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9;" (assignment_expression "uVar55 = (uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9" identifier = (binary_expression "(uint)((int)pEVar39 - (int)in_t3) / (uint)pEVar9" (call_expression "(uint)((int)pEVar39 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar39 - (int)in_t3)" ( (binary_expression "(int)pEVar39 - (int)in_t3" (cast_expression "(int)pEVar39" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9 << 0x10" (binary_expression "(uint)((int)pEVar39 - (int)in_t3) % (uint)pEVar9" (call_expression "(uint)((int)pEVar39 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar39 - (int)in_t3)" ( (binary_expression "(int)pEVar39 - (int)in_t3" (cast_expression "(int)pEVar39" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num);" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num)" ( (binary_expression "&pEVar9->e_ident_magic_num + (int)&pEVar25->e_ident_magic_num" (pointer_expression "&pEVar9->e_ident_magic_num" & (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar25->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar25->e_ident_magic_num" & (field_expression "pEVar25->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar54 = uVar55;" (assignment_expression "uVar54 = uVar55" identifier = identifier) ;) (if_statement "if ((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )) {\n      uVar54 = uVar55 - 1;\n    }" if (parenthesized_expression "((pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       ))" ( (binary_expression "(pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )" (parenthesized_expression "(pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55))" ( (binary_expression "pEVar9 < (Elf32_Ehdr *)((int)in_t2 * uVar55)" identifier < (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) )) && (parenthesized_expression "((pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))\n       )" ( (parenthesized_expression "(pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39))" ( (binary_expression "pEVar39 < pEVar25 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39)" (binary_expression "pEVar39 < pEVar25" identifier < identifier) || (parenthesized_expression "(uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39)" ( (comma_expression "uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39" (assignment_expression "uVar54 = uVar55 - 2" identifier = (binary_expression "uVar55 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar39" (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar54 = uVar55 - 1;\n    }" { (expression_statement "uVar54 = uVar55 - 1;" (assignment_expression "uVar54 = uVar55 - 1" identifier = (binary_expression "uVar55 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar54 = uVar5 << 0x10 | uVar54;" (assignment_expression "uVar54 = uVar5 << 0x10 | uVar54" identifier = (binary_expression "uVar5 << 0x10 | uVar54" (binary_expression "uVar5 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54)" ( (binary_expression "&pEVar31->e_ident_magic_num + (int)pEVar25 * uVar54" (pointer_expression "&pEVar31->e_ident_magic_num" & (field_expression "pEVar31->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar25 * uVar54" (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar9 < pEVar31) {\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar9 < pEVar31)" ( (binary_expression "pEVar9 < pEVar31" identifier < identifier) )) (compound_statement "{\n      uVar5 = pEVar9 < pEVar25 ^ 1;\n      pEVar39 = pEVar25;\n      if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar5;\n      pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar5 = pEVar9 < pEVar25 ^ 1;" (assignment_expression "uVar5 = pEVar9 < pEVar25 ^ 1" identifier = (binary_expression "pEVar9 < pEVar25 ^ 1" (binary_expression "pEVar9 < pEVar25" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar39 = pEVar25;" (assignment_expression "pEVar39 = pEVar25" identifier = identifier) ;) (if_statement "if (uVar5 == 0) {\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar39 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar39 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar39 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar54 = (uVar54 - 1) - uVar5;" (assignment_expression "uVar54 = (uVar54 - 1) - uVar5" identifier = (binary_expression "(uVar54 - 1) - uVar5" (parenthesized_expression "(uVar54 - 1)" ( (binary_expression "uVar54 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25));" (assignment_expression "pEVar9 = (Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar9 + (-(int)pEVar39 - (int)pEVar25))" ( (binary_expression "(int)pEVar9 + (-(int)pEVar39 - (int)pEVar25)" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar39 - (int)pEVar25)" ( (binary_expression "-(int)pEVar39 - (int)pEVar25" (unary_expression "-(int)pEVar39" - (cast_expression "(int)pEVar39" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar39 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar39 = (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 "pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num)" ( (binary_expression "&pEVar39->e_ident_magic_num + (int)&pEVar9->e_ident_magic_num" (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)&pEVar9->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar9->e_ident_magic_num" & (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar5 = uVar54;" (assignment_expression "uVar5 = uVar54" identifier = identifier) ;) (if_statement "if (((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar5 = uVar54 - 2;\n    }" if (parenthesized_expression "(((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)) &&\n       ((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9))" ( (binary_expression "(pEVar9 < pEVar39) && (uVar5 = uVar54 - 1, pEVar25 <= pEVar9)" (parenthesized_expression "(pEVar9 < pEVar39)" ( (binary_expression "pEVar9 < pEVar39" identifier < identifier) )) && (parenthesized_expression "(uVar5 = uVar54 - 1, pEVar25 <= pEVar9)" ( (comma_expression "uVar5 = uVar54 - 1, pEVar25 <= pEVar9" (assignment_expression "uVar5 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) , (binary_expression "pEVar25 <= pEVar9" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9), pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(uint)(pEVar25 < pEVar9)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar25 < pEVar9)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar25 < pEVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar25 < pEVar9)" ( (binary_expression "pEVar25 < pEVar9" identifier < identifier) ))))) , (binary_expression "pEVar25 != (Elf32_Ehdr *)0x0 ||\n        (pEVar31 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar25 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar31 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar31 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar5 = uVar54 - 2;\n    }" { (expression_statement "uVar5 = uVar54 - 2;" (assignment_expression "uVar5 = uVar54 - 2" identifier = (binary_expression "uVar54 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar35 + -0x44) = uVar5;" (assignment_expression "*(uint *)(puVar35 + -0x44) = uVar5" (pointer_expression "*(uint *)(puVar35 + -0x44)" * (cast_expression "(uint *)(puVar35 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x44)" ( (binary_expression "puVar35 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4);" (assignment_expression "pEVar31 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x5c) + 4" (pointer_expression "*(int *)(puVar35 + -0x5c)" * (cast_expression "(int *)(puVar35 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x5c)" ( (binary_expression "puVar35 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar9 = pEVar31;" (assignment_expression "pEVar9 = pEVar31" identifier = identifier) ;) (if_statement "if ((int)pEVar31 < 0) {\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }" if (parenthesized_expression "((int)pEVar31 < 0)" ( (binary_expression "(int)pEVar31 < 0" (cast_expression "(int)pEVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;\n    }" { (expression_statement "pEVar9 = (Elf32_Ehdr *)-(int)pEVar31;" (assignment_expression "pEVar9 = (Elf32_Ehdr *)-(int)pEVar31" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar31" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar31" - (cast_expression "(int)pEVar31" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8);" (assignment_expression "pEVar39 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar35 + -0x5c) + 8" (pointer_expression "*(int *)(puVar35 + -0x5c)" * (cast_expression "(int *)(puVar35 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x5c)" ( (binary_expression "puVar35 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar9 <= (int)pEVar42) {\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar9 <= (int)pEVar42)" ( (binary_expression "(int)pEVar9 <= (int)pEVar42" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);\n      *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      if (piVar37 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar31 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar31 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar31 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;\n        *(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;\n        pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar35 + -100) = pEVar39;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -100) = pEVar39" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar35 + -0x70) = *(int *)(puVar35 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar35 + -0x70)" * (cast_expression "(uint *)(puVar35 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar35 + -0x50) + 4U" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar35 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar35 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar35 + -0x50) + 4U" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      piVar37 = *(int **)(puVar35 + -0x40);" statement_identifier : (expression_statement "piVar37 = *(int **)(puVar35 + -0x40);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x40)" identifier = (pointer_expression "*(int **)(puVar35 + -0x40)" * (cast_expression "(int **)(puVar35 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar35 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x54) + 4" (pointer_expression "*(int *)(puVar35 + -0x54)" * (cast_expression "(int *)(puVar35 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar37 == (int *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(piVar37 == (int *)0x0)" ( (binary_expression "piVar37 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(int *)(puVar35 + -0x50) + 4;" (assignment_expression "uVar5 = *(int *)(puVar35 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar35 + -0x50) + 4" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(uint)(uVar5 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar5 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar5 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < 0x7f01)" ( (binary_expression "uVar5 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar35 + -0x70) = uVar5;" (assignment_expression "*(uint *)(puVar35 + -0x70) = uVar5" (pointer_expression "*(uint *)(puVar35 + -0x70)" * (cast_expression "(uint *)(puVar35 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }\n    else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }" if (parenthesized_expression "(pEVar38 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar38 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;\n      uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);\n      *(undefined4 *)(puVar35 + -100) = uVar41;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x60) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));" (assignment_expression "uVar41 = (*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" identifier = (call_expression "(*pcVar51)(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar35 + -0x70)" * (cast_expression "(undefined4 *)(puVar35 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60);" (assignment_expression "pEVar9 = *(Elf32_Ehdr **)(puVar35 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar35 + -100) = uVar41;" (assignment_expression "*(undefined4 *)(puVar35 + -100) = uVar41" (pointer_expression "*(undefined4 *)(puVar35 + -100)" * (cast_expression "(undefined4 *)(puVar35 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }" else (compound_statement "{\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }" { (expression_statement "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar35 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18;" (assignment_expression "*(undefined1 **)(puVar35 + -100) = puVar49 + iVar7 + 0x18" (pointer_expression "*(undefined1 **)(puVar35 + -100)" * (cast_expression "(undefined1 **)(puVar35 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar7 + 0x18" (binary_expression "puVar49 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar7;" (assignment_expression "puVar49 = puVar49 + iVar7" identifier = (binary_expression "puVar49 + iVar7" identifier + identifier)) ;) }))) (expression_statement "tp = *(mp_ptr *)(puVar35 + -100);" (assignment_expression "tp = *(mp_ptr *)(puVar35 + -100)" identifier = (pointer_expression "*(mp_ptr *)(puVar35 + -100)" * (cast_expression "(mp_ptr *)(puVar35 + -100)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) ))))) ;) (expression_statement "pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);" (assignment_expression "pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar35 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar35 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x14) = puVar35 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x14)" * (cast_expression "(undefined1 **)(puVar49 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar35 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar25 = pEVar39;" (assignment_expression "pEVar25 = pEVar39" identifier = identifier) ;) (expression_statement "reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14));" (call_expression "reduce(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14))" identifier (argument_list "(tp,(mp_srcptr)pEVar39,(mp_size_t)pEVar9,pmVar32,*(mp_size_t *)(puVar49 + 0x10),\n           *(gmp_pi1_t **)(puVar49 + 0x14))" ( identifier , (cast_expression "(mp_srcptr)pEVar39" ( (type_descriptor "mp_srcptr" type_identifier) ) identifier) , (cast_expression "(mp_size_t)pEVar9" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , identifier , (pointer_expression "*(mp_size_t *)(puVar49 + 0x10)" * (cast_expression "(mp_size_t *)(puVar49 + 0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(gmp_pi1_t **)(puVar49 + 0x14)" * (cast_expression "(gmp_pi1_t **)(puVar49 + 0x14)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar9 = pEVar42;" (assignment_expression "pEVar9 = pEVar42" identifier = identifier) ;) (if_statement "if (*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0) {\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }" if (parenthesized_expression "(*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0)" ( (binary_expression "*(int *)((int)tp + *(int *)(puVar35 + -0x50)) == 0" (pointer_expression "*(int *)((int)tp + *(int *)(puVar35 + -0x50))" * (cast_expression "(int *)((int)tp + *(int *)(puVar35 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)tp + *(int *)(puVar35 + -0x50))" ( (binary_expression "(int)tp + *(int *)(puVar35 + -0x50)" (cast_expression "(int)tp" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar7 = (int)tp + *(int *)(puVar35 + -0x70);\n      do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);\n    }" { (expression_statement "iVar7 = (int)tp + *(int *)(puVar35 + -0x70);" (assignment_expression "iVar7 = (int)tp + *(int *)(puVar35 + -0x70)" identifier = (binary_expression "(int)tp + *(int *)(puVar35 + -0x70)" (cast_expression "(int)tp" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(puVar35 + -0x70)" * (cast_expression "(int *)(puVar35 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      } while (*piVar37 == 0);" do (compound_statement "{\n        pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);\n        if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar37 = (int *)(iVar7 + -8);\n        pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);\n        iVar7 = iVar7 + -4;\n      }" { (expression_statement "pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1);" (assignment_expression "pEVar9 = (Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar9[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar9[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar9[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar9[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar9[-1].e_shstrndx" & (field_expression "pEVar9[-1].e_shstrndx" (subscript_expression "pEVar9[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar9 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar9 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar37 = (int *)(iVar7 + -8);" (assignment_expression "piVar37 = (int *)(iVar7 + -8)" identifier = (cast_expression "(int *)(iVar7 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -8)" ( (binary_expression "iVar7 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)((int)pEVar42 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar42 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar42 << 3)" ( (binary_expression "(int)pEVar42 << 3" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar7 = iVar7 + -4;" (assignment_expression "iVar7 = iVar7 + -4" identifier = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar37 == 0)" ( (binary_expression "*piVar37 == 0" (pointer_expression "*piVar37" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar42 * 8 + 4U < 0x7f01) {\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar42 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar42 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar42 * 8 + 4U" (binary_expression "(int)pEVar42 * 8" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar7 = -((int)pEVar42 * 8 + 8);\n      pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);\n      puVar49 = puVar49 + iVar7;\n    }" { (expression_statement "iVar7 = -((int)pEVar42 * 8 + 8);" (assignment_expression "iVar7 = -((int)pEVar42 * 8 + 8)" identifier = (unary_expression "-((int)pEVar42 * 8 + 8)" - (parenthesized_expression "((int)pEVar42 * 8 + 8)" ( (binary_expression "(int)pEVar42 * 8 + 8" (binary_expression "(int)pEVar42 * 8" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18);" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(puVar49 + iVar7 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar7 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar7 + 0x18)" ( (binary_expression "puVar49 + iVar7 + 0x18" (binary_expression "puVar49 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + iVar7;" (assignment_expression "puVar49 = puVar49 + iVar7" identifier = (binary_expression "puVar49 + iVar7" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }" else (compound_statement "{\n      pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }" { (expression_statement "pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);" (assignment_expression "pEVar39 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar38 == (Elf32_Ehdr *)0x0) {\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }\n    else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }" if (parenthesized_expression "(pEVar38 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar38 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));\n      pcVar51 = *(code **)(puVar35 + -0x88);\n    }" { (expression_statement "pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70));" (assignment_expression "pEVar4 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar35 + -0x40,*(undefined4 *)(puVar35 + -0x70))" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar35 + -0x70)" * (cast_expression "(undefined4 *)(puVar35 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "pEVar4 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar35 + -0x70) + 7U" (pointer_expression "*(int *)(puVar35 + -0x70)" * (cast_expression "(int *)(puVar35 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar49 = puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar49 + -(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar35 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar35 + -0x70) + 7U" (pointer_expression "*(int *)(puVar35 + -0x70)" * (cast_expression "(int *)(puVar35 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar35 + -0x50) + 8U < 0x7f01) {\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }\n    else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }" if (parenthesized_expression "(*(int *)(puVar35 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar35 + -0x50) + 8U" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;\n      puVar49 = puVar49 + iVar7;\n    }" { (expression_statement "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar7 = -(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar35 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar35 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18;" (assignment_expression "*(undefined1 **)(puVar35 + -0x74) = puVar49 + iVar7 + 0x18" (pointer_expression "*(undefined1 **)(puVar35 + -0x74)" * (cast_expression "(undefined1 **)(puVar35 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x74)" ( (binary_expression "puVar35 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar7 + 0x18" (binary_expression "puVar49 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar7;" (assignment_expression "puVar49 = puVar49 + iVar7" identifier = (binary_expression "puVar49 + iVar7" identifier + identifier)) ;) }) (else_clause "else {\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }" else (compound_statement "{\n      uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      *(undefined4 *)(puVar35 + -0x74) = uVar41;\n    }" { (expression_statement "uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40);" (assignment_expression "uVar41 = (**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar35 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar35 + -0x74) = uVar41;" (assignment_expression "*(undefined4 *)(puVar35 + -0x74) = uVar41" (pointer_expression "*(undefined4 *)(puVar35 + -0x74)" * (cast_expression "(undefined4 *)(puVar35 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x74)" ( (binary_expression "puVar35 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar33 = *(undefined4 **)(puVar35 + -100);" (assignment_expression "puVar33 = *(undefined4 **)(puVar35 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar35 + -100)" * (cast_expression "(undefined4 **)(puVar35 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) ))))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar9[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar9[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar9[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar9[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar9[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar9[-1].e_shstrndx" & (field_expression "pEVar9[-1].e_shstrndx" (subscript_expression "pEVar9[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)*puVar33;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)*puVar33" identifier = (cast_expression "(Elf32_Ehdr *)*puVar33" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ;) (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (expression_statement "pwVar13 = pwVar8;" (assignment_expression "pwVar13 = pwVar8" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);\n      pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);\n    }" { (do_statement "do {\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      } while (pwVar13 != (word *)0x0);" do (compound_statement "{\n        puVar33 = puVar33 + 1;\n        *(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;\n        pwVar13 = (word *)((int)pwVar13 + -1);\n        pEVar25 = (Elf32_Ehdr *)*puVar33;\n        pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n      }" { (expression_statement "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pwVar13 = (word *)((int)pwVar13 + -1);" (assignment_expression "pwVar13 = (word *)((int)pwVar13 + -1)" identifier = (cast_expression "(word *)((int)pwVar13 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar13 + -1)" ( (binary_expression "(int)pwVar13 + -1" (cast_expression "(int)pwVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)*puVar33;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)*puVar33" identifier = (cast_expression "(Elf32_Ehdr *)*puVar33" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar13 != (word *)0x0)" ( (binary_expression "pwVar13 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5)" ( (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar9 * 4 + -5" (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar9 * 4" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar9 * 4" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1])" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1])" ( (binary_expression "0x20 - (uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]" number_literal - (subscript_expression "(uint)(&pEVar23->e_ident_magic_num)[(uint)pEVar27 >> 1]" (call_expression "(uint)(&pEVar23->e_ident_magic_num)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&pEVar23->e_ident_magic_num)" ( (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)) ))) [ (binary_expression "(uint)pEVar27 >> 1" (cast_expression "(uint)pEVar27" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ])) )))) ;) (expression_statement "iVar7 = 0x1f - (int)pEVar23;" (assignment_expression "iVar7 = 0x1f - (int)pEVar23" identifier = (binary_expression "0x1f - (int)pEVar23" number_literal - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pEVar16 = pEVar9;" (assignment_expression "pEVar16 = pEVar9" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }\n    }" { (if_statement "if (pEVar42 == pEVar9) {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }" if (parenthesized_expression "(pEVar42 == pEVar9)" ( (binary_expression "pEVar42 == pEVar9" identifier == identifier) )) (compound_statement "{\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;\n        iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;\n        do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);\n        pcVar44 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar25 = pEVar4;\n        (*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n      }" { (expression_statement "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4;" (assignment_expression "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar42 * 4" identifier = (binary_expression "&pEVar4->e_ident_magic_num + (int)pEVar42 * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar42 * 4" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4;" (assignment_expression "iVar7 = *(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4" identifier = (binary_expression "*(int *)(puVar35 + -0x4c) + (int)pEVar42 * 4" (pointer_expression "*(int *)(puVar35 + -0x4c)" * (cast_expression "(int *)(puVar35 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar42 * 4" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        } while (pwVar8 != (word *)0xffffffff);" do (compound_statement "{\n          pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar7 = iVar7 + -4;\n        }" { (expression_statement "pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4);" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)(iVar7 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar7 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar7 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -4)" ( (binary_expression "iVar7 + -4" identifier + number_literal) ))))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25) {\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25)" ( (binary_expression "*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar25" (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar44 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" { (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;" if (parenthesized_expression "(pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4))" ( (binary_expression "pEVar25 < *(Elf32_Ehdr **)(pbVar14 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031264;" goto statement_identifier ;)) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;) })) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + -4;" (assignment_expression "iVar7 = iVar7 + -4" identifier = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0xffffffff)" ( (binary_expression "pwVar8 != (word *)0xffffffff" identifier != (cast_expression "(word *)0xffffffff" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar25 = pEVar4;" statement_identifier : (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;)) (expression_statement "(*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9);" (call_expression "(*pcVar44)(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9)" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(pEVar4,pEVar4,*(undefined4 *)(puVar35 + -0x4c),pEVar9)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar35 + -0x4c)" * (cast_expression "(undefined4 *)(puVar35 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }" else (compound_statement "{\n      *(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;\n      pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);\n      *(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);\n      *(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;\n      do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);\n      pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);\n    }" { (expression_statement "*(Elf32_Ehdr **)(puVar35 + 8) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + 8) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 8)" ( (binary_expression "puVar35 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1)" ( (binary_expression "((int)pEVar27 << ((uint)pEVar23 & 0x1f)) << 1" (parenthesized_expression "((int)pEVar27 << ((uint)pEVar23 & 0x1f))" ( (binary_expression "(int)pEVar27 << ((uint)pEVar23 & 0x1f)" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "((uint)pEVar23 & 0x1f)" ( (binary_expression "(uint)pEVar23 & 0x1f" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50);" (assignment_expression "*(byte **)(puVar35 + -0x80) = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)" (pointer_expression "*(byte **)(puVar35 + -0x80)" * (cast_expression "(byte **)(puVar35 + -0x80)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x80)" ( (binary_expression "puVar35 + -0x80" identifier + number_literal) )))) = (binary_expression "&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar35 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar35 + -0x7c)" * (cast_expression "(int *)(puVar35 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x7c)" ( (binary_expression "puVar35 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(pcVar51 + -0x7fcc)" * (cast_expression "(int *)(pcVar51 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + -0x7fcc)" ( (binary_expression "pcVar51 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar35 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar35 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar35 + -0x60)" * (cast_expression "(undefined4 *)(puVar35 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      } while (iVar7 != 0);" do (compound_statement "{\n        pEVar25 = pEVar4;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }\n        if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }\n        iVar7 = iVar7 + -1;\n        pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);\n      }" { (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16);" (call_expression "(**(code **)(pcVar51 + -0x7cac))(pEVar39,pEVar4,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7cac))" ( (pointer_expression "**(code **)(pcVar51 + -0x7cac)" * (pointer_expression "*(code **)(pcVar51 + -0x7cac)" * (cast_expression "(code **)(pcVar51 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7cac)" ( (binary_expression "pcVar51 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar39,pEVar4,pEVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0))" ( (binary_expression "(int)pEVar16 * 2 -\n                  (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0)" ( (binary_expression "*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4) == 0" (pointer_expression "*(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4)" * (cast_expression "(int *)(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4)" ( (binary_expression "&pEVar39->e_ident_magic_num +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4" (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)) * 4" (parenthesized_expression "((int)pEVar16 * 2 + *(int *)(puVar35 + -0x60))" ( (binary_expression "(int)pEVar16 * 2 + *(int *)(puVar35 + -0x60)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar35 + -0x60)" * (cast_expression "(int *)(puVar35 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) ))))) )) * number_literal)) )))) == number_literal) )))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar42) {\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar42)" ( (binary_expression "(int)pEVar16 < (int)pEVar42" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n        }" { (expression_statement "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar29._0_1_ = pEVar39->e_ident_magic_num;\n            uVar29._1_1_ = pEVar39->e_ident_magic_str[0];\n            uVar29._2_1_ = pEVar39->e_ident_magic_str[1];\n            uVar29._3_1_ = pEVar39->e_ident_magic_str[2];\n            pEVar38 = pEVar4;\n            if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }\n            pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar38->e_ident_magic_str[2] = (char)uVar29;\n          }" { (expression_statement "uVar29._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "uVar29._0_1_ = pEVar39->e_ident_magic_num" (field_expression "uVar29._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar29._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "uVar29._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "uVar29._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "uVar29._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "uVar29._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "uVar29._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "uVar29._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar14 = &pEVar39->e_ident_class;\n              do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);\n              pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);\n            }" { (expression_statement "pbVar14 = &pEVar39->e_ident_class;" (assignment_expression "pbVar14 = &pEVar39->e_ident_class" identifier = (pointer_expression "&pEVar39->e_ident_class" & (field_expression "pEVar39->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n                pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n                pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n                pEVar38->e_ident_magic_str[2] = (char)uVar29;\n                pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                uVar29 = *(undefined4 *)pbVar14;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                pbVar14 = (byte *)pEVar25;\n              }" { (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar29 = *(undefined4 *)pbVar14;" (assignment_expression "uVar29 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar25;" (assignment_expression "pbVar14 = (byte *)pEVar25" identifier = (cast_expression "(byte *)pEVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" ( (binary_expression "&pEVar4->e_ident_magic_num +\n                        (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4" (cast_expression "(int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60))" ( (binary_expression "&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)" (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x60)" * (cast_expression "(int *)(puVar35 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) )))) ;) })) (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }" else (compound_statement "{\n          uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n          pcVar51 = *(code **)(puVar35 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n          (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n          pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          uVar21._0_1_ = pEVar39->e_ident_magic_num;\n          uVar21._1_1_ = pEVar39->e_ident_magic_str[0];\n          uVar21._2_1_ = pEVar39->e_ident_magic_str[1];\n          uVar21._3_1_ = pEVar39->e_ident_magic_str[2];\n          if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }\n          pcVar44 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar25 = pEVar16;\n          pEVar16 = pEVar42;\n        }" { (expression_statement "uVar41 = *(undefined4 *)(puVar35 + -0x4c);" (assignment_expression "uVar41 = *(undefined4 *)(puVar35 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar35 + -0x4c)" * (cast_expression "(undefined4 *)(puVar35 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7c)" * (cast_expression "(code **)(puVar35 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7c)" ( (binary_expression "puVar35 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar35 + -0x74)" * (cast_expression "(undefined4 *)(puVar35 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x74)" ( (binary_expression "puVar35 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar35 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);" (call_expression "(*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar39,pEVar16,uVar41,pEVar42)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar42[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar42[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar42[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar42[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar42[-1].e_shstrndx" & (field_expression "pEVar42[-1].e_shstrndx" (subscript_expression "pEVar42[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar21._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "uVar21._0_1_ = pEVar39->e_ident_magic_num" (field_expression "uVar21._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar21._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "uVar21._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "uVar21._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "uVar21._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "uVar21._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar21._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "uVar21._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "uVar21._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }\n          else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n            pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n            pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n            pEVar4->e_ident_magic_str[2] = (char)uVar21;\n          }" { (expression_statement "pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar4->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar4->e_ident_magic_str[0]" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar4->e_ident_magic_str[1]" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar4->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar4->e_ident_magic_str[2]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }" else (compound_statement "{\n            pEVar38 = pEVar4;\n            pbVar14 = &pEVar39->e_ident_class;\n            do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);\n            **(undefined4 **)(puVar35 + -0x80) = uVar21;\n          }" { (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar39->e_ident_class;" (assignment_expression "pbVar14 = &pEVar39->e_ident_class" identifier = (pointer_expression "&pEVar39->e_ident_class" & (field_expression "pEVar39->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n              pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);\n              pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);\n              pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);\n              pEVar38->e_ident_magic_str[2] = (char)uVar21;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              pwVar8 = (word *)((int)pwVar8 + -1);\n              uVar21 = *(undefined4 *)pbVar14;\n              pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            }" { (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar21 >> 0x18)" (field_expression "pEVar38->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 "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar21 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->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 "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar21 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->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 "pEVar38->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar21 = *(undefined4 *)pbVar14;" (assignment_expression "uVar21 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar16;" (assignment_expression "pbVar14 = (byte *)pEVar16" identifier = (cast_expression "(byte *)pEVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar35 + -0x80) = uVar21;" (assignment_expression "**(undefined4 **)(puVar35 + -0x80) = uVar21" (pointer_expression "**(undefined4 **)(puVar35 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar35 + -0x80)" * (cast_expression "(undefined4 **)(puVar35 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x80)" ( (binary_expression "puVar35 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar25 = pEVar16;" (assignment_expression "pEVar25 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar16 = pEVar42;" (assignment_expression "pEVar16 = pEVar42" identifier = identifier) ;) }))) (if_statement "if ((int)pEVar23 < 0) {\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }" if (parenthesized_expression "((int)pEVar23 < 0)" ( (binary_expression "(int)pEVar23 < 0" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar41 = *(undefined4 *)(puVar35 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;\n          pEVar25 = pEVar4;\n          (*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);\n          pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }\n        }" { (expression_statement "uVar41 = *(undefined4 *)(puVar35 + -100);" (assignment_expression "uVar41 = *(undefined4 *)(puVar35 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar35 + -100)" * (cast_expression "(undefined4 *)(puVar35 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -100)" ( (binary_expression "puVar35 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;) (expression_statement "(*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41);" (call_expression "(*pcVar44)(pEVar39,pEVar4,pEVar16,uVar41)" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(pEVar39,pEVar4,pEVar16,uVar41)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    ((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)))" ( (binary_expression "(int)pEVar9 +\n                    ((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0))" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0))" ( (binary_expression "(int)&pEVar16->e_ident_magic_num -\n                    (uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)" (cast_expression "(int)&pEVar16->e_ident_magic_num" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->e_ident_magic_num" identifier -> field_identifier))) - (call_expression "(uint)(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0)" ( (binary_expression "*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4) == 0" (pointer_expression "*(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4)" * (cast_expression "(int *)(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4)" ( (binary_expression "&pEVar39->e_ident_magic_num +\n                                   (int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4" (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))) * 4" (cast_expression "(int)(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60)))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60)))" ( (binary_expression "&pEVar9->e_ident_magic_num +\n                                        (int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))" (pointer_expression "&pEVar9->e_ident_magic_num" & (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)) + (cast_expression "(int)(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60))" ( (binary_expression "&pEVar16->e_ident_magic_num +\n                                             *(int *)(puVar35 + -0x60)" (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x60)" * (cast_expression "(int *)(puVar35 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) ))))) )))) ))) * number_literal)) )))) == number_literal) )))) ))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar42) {\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }\n          else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar42)" ( (binary_expression "(int)pEVar16 < (int)pEVar42" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }\n          }" { (expression_statement "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar30._0_1_ = pEVar39->e_ident_magic_num;\n              uVar30._1_1_ = pEVar39->e_ident_magic_str[0];\n              uVar30._2_1_ = pEVar39->e_ident_magic_str[1];\n              uVar30._3_1_ = pEVar39->e_ident_magic_str[2];\n              if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }\n            }" { (expression_statement "uVar30._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "uVar30._0_1_ = pEVar39->e_ident_magic_num" (field_expression "uVar30._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar30._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "uVar30._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "uVar30._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar30._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "uVar30._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "uVar30._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar30._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "uVar30._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "uVar30._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }\n              else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                pEVar4->e_ident_magic_str[2] = (char)uVar30;\n              }" { (expression_statement "pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);" (assignment_expression "pEVar4->e_ident_magic_num = (char)((uint)uVar30 >> 0x18)" (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar30 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 0x18)" ( (binary_expression "(uint)uVar30 >> 0x18" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);" (assignment_expression "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10)" (subscript_expression "pEVar4->e_ident_magic_str[0]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar30 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 0x10)" ( (binary_expression "(uint)uVar30 >> 0x10" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);" (assignment_expression "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8)" (subscript_expression "pEVar4->e_ident_magic_str[1]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar30 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 8)" ( (binary_expression "(uint)uVar30 >> 8" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar4->e_ident_magic_str[2] = (char)uVar30;" (assignment_expression "pEVar4->e_ident_magic_str[2] = (char)uVar30" (subscript_expression "pEVar4->e_ident_magic_str[2]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar30" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }" else (compound_statement "{\n                pEVar38 = pEVar4;\n                pbVar14 = &pEVar39->e_ident_class;\n                do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);\n                *(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;\n              }" { (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar39->e_ident_class;" (assignment_expression "pbVar14 = &pEVar39->e_ident_class" identifier = (pointer_expression "&pEVar39->e_ident_class" & (field_expression "pEVar39->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                  pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);\n                  pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);\n                  pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);\n                  pEVar38->e_ident_magic_str[2] = (char)uVar30;\n                  pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  pwVar8 = (word *)((int)pwVar8 + -1);\n                  uVar30 = *(undefined4 *)pbVar14;\n                  pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n                  pbVar14 = (byte *)pEVar25;\n                }" { (expression_statement "pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18);" (assignment_expression "pEVar38->e_ident_magic_num = (char)((uint)uVar30 >> 0x18)" (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar30 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 0x18)" ( (binary_expression "(uint)uVar30 >> 0x18" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10);" (assignment_expression "pEVar38->e_ident_magic_str[0] = (char)((uint)uVar30 >> 0x10)" (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar30 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 0x10)" ( (binary_expression "(uint)uVar30 >> 0x10" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8);" (assignment_expression "pEVar38->e_ident_magic_str[1] = (char)((uint)uVar30 >> 8)" (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar30 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar30 >> 8)" ( (binary_expression "(uint)uVar30 >> 8" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar38->e_ident_magic_str[2] = (char)uVar30;" (assignment_expression "pEVar38->e_ident_magic_str[2] = (char)uVar30" (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar30" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar30 = *(undefined4 *)pbVar14;" (assignment_expression "uVar30 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar25;" (assignment_expression "pbVar14 = (byte *)pEVar25" identifier = (cast_expression "(byte *)pEVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30;" (assignment_expression "*(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4) = uVar30" (pointer_expression "*(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" * (cast_expression "(undefined4 *)\n                 (&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4)" ( (binary_expression "&pEVar4->e_ident_magic_num +\n                 (int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)) * 4" (cast_expression "(int)(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60))" ( (binary_expression "&pEVar16->e_ident_magic_num + *(int *)(puVar35 + -0x60)" (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x60)" * (cast_expression "(int *)(puVar35 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x60)" ( (binary_expression "puVar35 + -0x60" identifier + number_literal) ))))) ))) * number_literal)) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }" else (compound_statement "{\n            uVar41 = *(undefined4 *)(puVar35 + -0x4c);\n            pcVar51 = *(code **)(puVar35 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n            (*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);\n            pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar35 + -0x88);\n            pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;\n            pEVar16 = pEVar4;\n            pEVar38 = pEVar39;\n            if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }\n          }" { (expression_statement "uVar41 = *(undefined4 *)(puVar35 + -0x4c);" (assignment_expression "uVar41 = *(undefined4 *)(puVar35 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar35 + -0x4c)" * (cast_expression "(undefined4 *)(puVar35 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar35 + -0x7c)" * (cast_expression "(code **)(puVar35 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x7c)" ( (binary_expression "puVar35 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar35 + -0x74)" * (cast_expression "(undefined4 *)(puVar35 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x74)" ( (binary_expression "puVar35 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar35 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42);" (call_expression "(*pcVar51)(pEVar39,pEVar16,uVar41,pEVar42)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar39,pEVar16,uVar41,pEVar42)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar42[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar42[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar42[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar42[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar42[-1].e_shstrndx" & (field_expression "pEVar42[-1].e_shstrndx" (subscript_expression "pEVar42[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar39->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar39->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar39->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pEVar16 = pEVar4;" (assignment_expression "pEVar16 = pEVar4" identifier = identifier) ;) (expression_statement "pEVar38 = pEVar39;" (assignment_expression "pEVar38 = pEVar39" identifier = identifier) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;\n              pEVar16 = pEVar42;\n            }" { (expression_statement "*(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar4->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar4->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar4->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pEVar16 = pEVar42;" (assignment_expression "pEVar16 = pEVar42" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);\n              **(undefined4 **)(puVar35 + -0x80) = pEVar25;\n              pEVar16 = pEVar42;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;\n                pwVar8 = (word *)((int)pwVar8 + -1);\n                pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;\n                pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n                pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar16->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar16->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar16->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->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 "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar38->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar38->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;" (assignment_expression "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar16->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar16->e_ident_class" & (field_expression "pEVar16->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)&pEVar38->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar38->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar38->e_ident_class" & (field_expression "pEVar38->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar35 + -0x80) = pEVar25;" (assignment_expression "**(undefined4 **)(puVar35 + -0x80) = pEVar25" (pointer_expression "**(undefined4 **)(puVar35 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar35 + -0x80)" * (cast_expression "(undefined4 **)(puVar35 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x80)" ( (binary_expression "puVar35 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "pEVar16 = pEVar42;" (assignment_expression "pEVar16 = pEVar42" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 << 1)" ( (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(puVar35 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 8)" ( (binary_expression "puVar35 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar38 = (Elf32_Ehdr *)0x0;" statement_identifier : (expression_statement "pEVar38 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c);" (assignment_expression "pEVar6 = *(Elf32_Ehdr **)(puVar35 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x6c)" ( (binary_expression "puVar35 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar6 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }\n    else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar6 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar6 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      piVar37 = *(int **)(puVar35 + -0x54);\n      if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }\n      pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;\n      puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);\n      puVar33 = puVar28;\n      pEVar27 = pEVar4;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar28 = pEVar25;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }" statement_identifier : (if_statement "if ((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))\n      {\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }" if (parenthesized_expression "((0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0))" ( (binary_expression "(0 < (int)pEVar16) && (*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0)" (parenthesized_expression "(0 < (int)pEVar16)" ( (binary_expression "0 < (int)pEVar16" number_literal < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0)" ( (binary_expression "*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5) == 0" (pointer_expression "*(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" * (cast_expression "(int *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" ( (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5" (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);\n      }" { (expression_statement "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;" (assignment_expression "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4" identifier = (binary_expression "&pEVar4->e_ident_magic_num + (int)pEVar16 * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*piVar37 == 0);" do (compound_statement "{\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          piVar37 = (int *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n            piVar37 = *(int **)(puVar35 + -0x54);\n            if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar27 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar27 & 1)" ( (binary_expression "(uint)pEVar27 & 1" (cast_expression "(uint)pEVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar37 = *(int **)(puVar35 + -0x54);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))" ( (binary_expression "(pEVar6 == (Elf32_Ehdr *)0x0) ||\n               (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))" (parenthesized_expression "(pEVar6 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar6 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))" ( (comma_expression "piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar35 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar35 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x5c) + 4" (pointer_expression "*(int *)(puVar35 + -0x5c)" * (cast_expression "(int *)(puVar35 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x5c)" ( (binary_expression "puVar35 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "piVar37 = (int *)(pbVar14 + -8);" (assignment_expression "piVar37 = (int *)(pbVar14 + -8)" identifier = (cast_expression "(int *)(pbVar14 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar37 == 0)" ( (binary_expression "*piVar37 == 0" (pointer_expression "*piVar37" * identifier) == number_literal) )) ;) }))) (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar27 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar27 & 1)" ( (binary_expression "(uint)pEVar27 & 1" (cast_expression "(uint)pEVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar37 = *(int **)(puVar35 + -0x54);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }" if (parenthesized_expression "((pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)))" ( (binary_expression "(pEVar6 == (Elf32_Ehdr *)0x0) ||\n         (piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))" (parenthesized_expression "(pEVar6 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar6 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4))" ( (comma_expression "piVar37 = *(int **)(puVar35 + -0x54), -1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar35 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar35 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar35 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x5c) + 4" (pointer_expression "*(int *)(puVar35 + -0x5c)" * (cast_expression "(int *)(puVar35 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x5c)" ( (binary_expression "puVar35 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar37 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar44 = *(code **)(pcVar51 + -0x7a84);" statement_identifier : (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar37 < (int)pEVar16) goto LAB_00031474;" if (parenthesized_expression "(*piVar37 < (int)pEVar16)" ( (binary_expression "*piVar37 < (int)pEVar16" (pointer_expression "*piVar37" * identifier) < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);" statement_identifier : (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar27 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar27 & 1)" ( (binary_expression "(uint)pEVar27 & 1" (cast_expression "(uint)pEVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x54) + 4" (pointer_expression "*(int *)(puVar35 + -0x54)" * (cast_expression "(int *)(puVar35 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }" else (compound_statement "{\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);\n        pEVar25 = pEVar23;\n        iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);\n        iVar50._0_1_ = pEVar38->e_ident_magic_num;\n        iVar50._1_1_ = pEVar38->e_ident_magic_str[0];\n        iVar50._2_1_ = pEVar38->e_ident_magic_str[1];\n        iVar50._3_1_ = pEVar38->e_ident_magic_str[2];\n        if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }\n        if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;\n      }" { (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8);" (assignment_expression "pEVar23 = *(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar35 + -0x68) + 8" (pointer_expression "*(int *)(puVar35 + -0x68)" * (cast_expression "(int *)(puVar35 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x68)" ( (binary_expression "puVar35 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar25 = pEVar23;" (assignment_expression "pEVar25 = pEVar23" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16);" (assignment_expression "iVar7 = (**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7b2c))(pEVar4,pEVar23,pEVar4,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7b2c))" ( (pointer_expression "**(code **)(pcVar51 + -0x7b2c)" * (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(pEVar4,pEVar23,pEVar4,pEVar16)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));\n          pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n          pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n          do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;" statement_identifier : (if_statement "if ((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)) goto LAB_00031130;" if (parenthesized_expression "((pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16))" ( (binary_expression "(pEVar4 == pEVar23) || ((int)pEVar42 <= (int)pEVar16)" (parenthesized_expression "(pEVar4 == pEVar23)" ( (binary_expression "pEVar4 == pEVar23" identifier == identifier) )) || (parenthesized_expression "((int)pEVar42 <= (int)pEVar16)" ( (binary_expression "(int)pEVar42 <= (int)pEVar16" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70));" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70))" ( (binary_expression "&pEVar23->e_ident_magic_num + *(int *)(puVar35 + -0x70)" (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x70)" * (cast_expression "(int *)(puVar35 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;" (assignment_expression "pbVar15 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4" identifier = (binary_expression "&pEVar23->e_ident_magic_num + (int)pEVar16 * 4" (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;" (assignment_expression "pbVar14 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4" identifier = (binary_expression "&pEVar4->e_ident_magic_num + (int)pEVar16 * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar25 != (Elf32_Ehdr *)pbVar15);" do (compound_statement "{\n            uVar41 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar41;\n            pbVar14 = pbVar14 + 4;\n          }" { (expression_statement "uVar41 = *(undefined4 *)pbVar15;" (assignment_expression "uVar41 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar41;" (assignment_expression "*(undefined4 *)pbVar14 = uVar41" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar25 != (Elf32_Ehdr *)pbVar15)" ( (binary_expression "pEVar25 != (Elf32_Ehdr *)pbVar15" identifier != (cast_expression "(Elf32_Ehdr *)pbVar15" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar7 = *(int *)(puVar35 + -0x50);" (assignment_expression "iVar7 = *(int *)(puVar35 + -0x50)" identifier = (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }" else (compound_statement "{\n          if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);\n        }" { (if_statement "if ((int)pEVar16 < (int)pEVar42) {\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar42)" ( (binary_expression "(int)pEVar16 < (int)pEVar42" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;\n            pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;\n            pEVar25 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);\n            pEVar38 = pEVar25;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4;" (assignment_expression "pbVar14 = &pEVar23->e_ident_magic_num + (int)pEVar16 * 4" identifier = (binary_expression "&pEVar23->e_ident_magic_num + (int)pEVar16 * 4" (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4;" (assignment_expression "pbVar15 = &pEVar4->e_ident_magic_num + (int)pEVar16 * 4" identifier = (binary_expression "&pEVar4->e_ident_magic_num + (int)pEVar16 * 4" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)pbVar14;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)pbVar14" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar14" * (cast_expression "(Elf32_Ehdr **)pbVar14" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar15" * (cast_expression "(undefined1 **)pbVar15" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar25[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar25[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar25[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar25[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar25[-1].e_shstrndx" & (field_expression "pEVar25[-1].e_shstrndx" (subscript_expression "pEVar25[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar38 = pEVar25;" (assignment_expression "pEVar38 = pEVar25" identifier = identifier) ;) (while_statement "while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }" while (parenthesized_expression "(pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0)" ( (comma_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar38 == (Elf32_Ehdr *)0x0" (assignment_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar16->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "pEVar38 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n              pbVar15 = pbVar15 + 4;\n              if (pEVar42 == pEVar16) goto LAB_00031130;\n              pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar25;\n            }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar42 == pEVar16) goto LAB_00031130;" if (parenthesized_expression "(pEVar42 == pEVar16)" ( (binary_expression "pEVar42 == pEVar16" identifier == identifier) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4);" (assignment_expression "pEVar38 = *(Elf32_Ehdr **)(pbVar14 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar38[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar38[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar38[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar38[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar38[-1].e_shstrndx" & (field_expression "pEVar38[-1].e_shstrndx" (subscript_expression "pEVar38[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar25" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar7 = *(int *)(puVar35 + -0x50);" statement_identifier : (expression_statement "iVar7 = *(int *)(puVar35 + -0x50);" (assignment_expression "iVar7 = *(int *)(puVar35 + -0x50)" identifier = (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7)" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar4->e_ident_magic_num + iVar7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar4->e_ident_magic_num + iVar7)" ( (binary_expression "&pEVar4->e_ident_magic_num + iVar7" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + identifier) )))) ;) (expression_statement "iVar50._0_1_ = pEVar38->e_ident_magic_num;" (assignment_expression "iVar50._0_1_ = pEVar38->e_ident_magic_num" (field_expression "iVar50._0_1_" identifier . field_identifier) = (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar50._1_1_ = pEVar38->e_ident_magic_str[0];" (assignment_expression "iVar50._1_1_ = pEVar38->e_ident_magic_str[0]" (field_expression "iVar50._1_1_" identifier . field_identifier) = (subscript_expression "pEVar38->e_ident_magic_str[0]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._2_1_ = pEVar38->e_ident_magic_str[1];" (assignment_expression "iVar50._2_1_ = pEVar38->e_ident_magic_str[1]" (field_expression "iVar50._2_1_" identifier . field_identifier) = (subscript_expression "pEVar38->e_ident_magic_str[1]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._3_1_ = pEVar38->e_ident_magic_str[2];" (assignment_expression "iVar50._3_1_ = pEVar38->e_ident_magic_str[2]" (field_expression "iVar50._3_1_" identifier . field_identifier) = (subscript_expression "pEVar38->e_ident_magic_str[2]" (field_expression "pEVar38->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar50 == 0) {\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }" if (parenthesized_expression "(iVar50 == 0)" ( (binary_expression "iVar50 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = *(int *)(puVar35 + -0x78);\n          pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);\n          do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);\n          *(int *)(puVar35 + -0x78) = iVar7;\n        }" { (expression_statement "iVar7 = *(int *)(puVar35 + -0x78);" (assignment_expression "iVar7 = *(int *)(puVar35 + -0x78)" identifier = (pointer_expression "*(int *)(puVar35 + -0x78)" * (cast_expression "(int *)(puVar35 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70);" (assignment_expression "pbVar14 = &pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70)" identifier = (binary_expression "&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x70)" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x70)" * (cast_expression "(int *)(puVar35 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x70)" ( (binary_expression "puVar35 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*piVar37 == 0);" do (compound_statement "{\n            iVar7 = iVar7 + -1;\n            if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }\n            piVar37 = (int *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          }" { (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar37 = *(int **)(puVar35 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar37 = *(int **)(puVar35 + -0x54);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "piVar37 = (int *)(pbVar14 + -8);" (assignment_expression "piVar37 = (int *)(pbVar14 + -8)" identifier = (cast_expression "(int *)(pbVar14 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar37 == 0)" ( (binary_expression "*piVar37 == 0" (pointer_expression "*piVar37" * identifier) == number_literal) )) ;) (expression_statement "*(int *)(puVar35 + -0x78) = iVar7;" (assignment_expression "*(int *)(puVar35 + -0x78) = iVar7" (pointer_expression "*(int *)(puVar35 + -0x78)" * (cast_expression "(int *)(puVar35 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78))" ( (binary_expression "**(int **)(puVar35 + -0x54) < *(int *)(puVar35 + -0x78)" (pointer_expression "**(int **)(puVar35 + -0x54)" * (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar35 + -0x78)" * (cast_expression "(int *)(puVar35 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);\n          pcVar44 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar25 = pEVar16;\n          (*pcVar44)(*(undefined4 *)(puVar35 + -0x54));\n          pcVar51 = *(code **)(puVar35 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar44 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar25 = pEVar16;" statement_identifier : (expression_statement "pEVar25 = pEVar16;" (assignment_expression "pEVar25 = pEVar16" identifier = identifier) ;)) (expression_statement "(*pcVar44)(*(undefined4 *)(puVar35 + -0x54));" (call_expression "(*pcVar44)(*(undefined4 *)(puVar35 + -0x54))" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(*(undefined4 *)(puVar35 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar35 + -0x54)" * (cast_expression "(undefined4 *)(puVar35 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar35 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x78)" ( (binary_expression "puVar35 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar35 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x54) + 4" (pointer_expression "*(int *)(puVar35 + -0x54)" * (cast_expression "(int *)(puVar35 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)((uint)pEVar27 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar27 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar27 & 1)" ( (binary_expression "(uint)pEVar27 & 1" (cast_expression "(uint)pEVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar4->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar4->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar4->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8);" (assignment_expression "puVar28 = *(undefined4 **)(*(int *)(puVar35 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar35 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar35 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar35 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar35 + -0x54) + 8" (pointer_expression "*(int *)(puVar35 + -0x54)" * (cast_expression "(int *)(puVar35 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar33 = puVar28;" (assignment_expression "puVar33 = puVar28" identifier = identifier) ;) (expression_statement "pEVar27 = pEVar4;" (assignment_expression "pEVar27 = pEVar4" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n          *puVar33 = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;\n          puVar33 = puVar33 + 1;\n          pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n        }" { (expression_statement "*puVar33 = pEVar25;" (assignment_expression "*puVar33 = pEVar25" (pointer_expression "*puVar33" * 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 "pEVar25 = *(Elf32_Ehdr **)&pEVar27->e_ident_class;" (assignment_expression "pEVar25 = *(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 "puVar33 = puVar33 + 1;" (assignment_expression "puVar33 = puVar33 + 1" identifier = (binary_expression "puVar33 + 1" identifier + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar28 = puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar28 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar28 = pEVar25;" (assignment_expression "*puVar28 = pEVar25" (pointer_expression "*puVar28" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);\n      iVar36 = (int)pEVar16 * 4;\n      iVar34 = *(int *)(puVar35 + -0x88);\n      pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));\n      *(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;\n      pEVar23 = pEVar6;\n      if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }\n      pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }\n      pEVar25 = pEVar4;\n      (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);\n      pcVar51 = *(code **)(puVar35 + -0x88);\n      pEVar6 = pEVar27;\nLAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);\nLAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6);" (assignment_expression "iVar7 = (**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7ad4))(pEVar39,pEVar4,pEVar16,pEVar6)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar39,pEVar4,pEVar16,pEVar6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar36 = (int)pEVar16 * 4;" (assignment_expression "iVar36 = (int)pEVar16 * 4" identifier = (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar34 = *(int *)(puVar35 + -0x88);" (assignment_expression "iVar34 = *(int *)(puVar35 + -0x88)" identifier = (pointer_expression "*(int *)(puVar35 + -0x88)" * (cast_expression "(int *)(puVar35 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0))" identifier = (cast_expression "(Elf32_Ehdr *)(&pEVar16->e_ident_magic_num + (iVar7 != 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar16->e_ident_magic_num + (iVar7 != 0))" ( (binary_expression "&pEVar16->e_ident_magic_num + (iVar7 != 0)" (pointer_expression "&pEVar16->e_ident_magic_num" & (field_expression "pEVar16->e_ident_magic_num" identifier -> field_identifier)) + (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))) )))) ;) (expression_statement "*(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7;" (assignment_expression "*(int *)(&pEVar39->e_ident_magic_num + iVar36) = iVar7" (pointer_expression "*(int *)(&pEVar39->e_ident_magic_num + iVar36)" * (cast_expression "(int *)(&pEVar39->e_ident_magic_num + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar39->e_ident_magic_num + iVar36)" ( (binary_expression "&pEVar39->e_ident_magic_num + iVar36" (pointer_expression "&pEVar39->e_ident_magic_num" & (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) + identifier) )))) = identifier) ;) (expression_statement "pEVar23 = pEVar6;" (assignment_expression "pEVar23 = pEVar6" identifier = identifier) ;) (if_statement "if ((int)pEVar42 <= (int)pEVar16) {\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar42 <= (int)pEVar16)" ( (binary_expression "(int)pEVar42 <= (int)pEVar16" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;\n        mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));\n        pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);\n        iVar34 = *(int *)(puVar35 + -0x88);\n        uVar24._0_1_ = pEVar39->e_ident_magic_num;\n        uVar24._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar24._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar24._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar25 = pEVar4;\n        pEVar16 = pEVar39;\n        if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }\nLAB_000312bc:\n        pEVar25 = pEVar4;\n        (**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c);" (assignment_expression "pmVar32 = *(mp_srcptr *)(puVar35 + -0x4c)" identifier = (pointer_expression "*(mp_srcptr *)(puVar35 + -0x4c)" * (cast_expression "(mp_srcptr *)(puVar35 + -0x4c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x4c)" ( (binary_expression "puVar35 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar35 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar35 + -0x74)" * (cast_expression "(undefined4 *)(puVar35 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x74)" ( (binary_expression "puVar35 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar35 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar35 + -0x44" identifier + number_literal)) ;) (expression_statement "mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14));" (call_expression "mod((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14))" identifier (argument_list "((mp_ptr)pEVar39,(mp_size_t)pEVar16,pmVar32,(mp_size_t)pEVar42,\n            *(gmp_pi1_t **)(puVar49 + 0x10),*(mp_ptr *)(puVar49 + 0x14))" ( (cast_expression "(mp_ptr)pEVar39" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) , (cast_expression "(mp_size_t)pEVar16" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , identifier , (cast_expression "(mp_size_t)pEVar42" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) , (pointer_expression "*(gmp_pi1_t **)(puVar49 + 0x10)" * (cast_expression "(gmp_pi1_t **)(puVar49 + 0x10)" ( (type_descriptor "gmp_pi1_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar49 + 0x14)" * (cast_expression "(mp_ptr *)(puVar49 + 0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar42[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar42[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar42[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar42[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar42[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar42[-1].e_shstrndx" & (field_expression "pEVar42[-1].e_shstrndx" (subscript_expression "pEVar42[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar34 = *(int *)(puVar35 + -0x88);" (assignment_expression "iVar34 = *(int *)(puVar35 + -0x88)" identifier = (pointer_expression "*(int *)(puVar35 + -0x88)" * (cast_expression "(int *)(puVar35 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar24._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "uVar24._0_1_ = pEVar39->e_ident_magic_num" (field_expression "uVar24._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar24._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "uVar24._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "uVar24._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "uVar24._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "uVar24._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar24._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "uVar24._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "uVar24._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;) (expression_statement "pEVar16 = pEVar39;" (assignment_expression "pEVar16 = pEVar39" identifier = identifier) ;) (if_statement "if (pwVar8 == (word *)0x0) {\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }\n        else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }" if (parenthesized_expression "(pwVar8 == (word *)0x0)" ( (binary_expression "pwVar8 == (word *)0x0" identifier == (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n          pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n          pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n          pEVar4->e_ident_magic_str[2] = (char)uVar24;\n          pEVar16 = pEVar42;\n        }" { (expression_statement "pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar4->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar4->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar4->e_ident_magic_str[0]" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar4->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar4->e_ident_magic_str[1]" (field_expression "pEVar4->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 "pEVar4->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar4->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar4->e_ident_magic_str[2]" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = pEVar42;" (assignment_expression "pEVar16 = pEVar42" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }" else (compound_statement "{\n          do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          *(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;\n          pEVar16 = pEVar42;\n        }" { (do_statement "do {\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n            pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);\n            pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);\n            pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);\n            pEVar25->e_ident_magic_str[2] = (char)uVar24;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar24 = *(undefined4 *)&pEVar16->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n          }" { (expression_statement "pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18);" (assignment_expression "pEVar25->e_ident_magic_num = (char)((uint)uVar24 >> 0x18)" (field_expression "pEVar25->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 "pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10);" (assignment_expression "pEVar25->e_ident_magic_str[0] = (char)((uint)uVar24 >> 0x10)" (subscript_expression "pEVar25->e_ident_magic_str[0]" (field_expression "pEVar25->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 "pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8);" (assignment_expression "pEVar25->e_ident_magic_str[1] = (char)((uint)uVar24 >> 8)" (subscript_expression "pEVar25->e_ident_magic_str[1]" (field_expression "pEVar25->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 "pEVar25->e_ident_magic_str[2] = (char)uVar24;" (assignment_expression "pEVar25->e_ident_magic_str[2] = (char)uVar24" (subscript_expression "pEVar25->e_ident_magic_str[2]" (field_expression "pEVar25->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar24 = *(undefined4 *)&pEVar16->e_ident_class;" (assignment_expression "uVar24 = *(undefined4 *)&pEVar16->e_ident_class" identifier = (pointer_expression "*(undefined4 *)&pEVar16->e_ident_class" * (cast_expression "(undefined4 *)&pEVar16->e_ident_class" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar16->e_ident_class" & (field_expression "pEVar16->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar25->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->e_ident_class" & (field_expression "pEVar25->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;" (assignment_expression "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar16->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar16->e_ident_class" & (field_expression "pEVar16->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24;" (assignment_expression "*(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)) = uVar24" (pointer_expression "*(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50))" * (cast_expression "(undefined4 *)(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50))" ( (binary_expression "&pEVar4->e_ident_magic_num + *(int *)(puVar35 + -0x50)" (pointer_expression "&pEVar4->e_ident_magic_num" & (field_expression "pEVar4->e_ident_magic_num" identifier -> field_identifier)) + (pointer_expression "*(int *)(puVar35 + -0x50)" * (cast_expression "(int *)(puVar35 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x50)" ( (binary_expression "puVar35 + -0x50" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar42;" (assignment_expression "pEVar16 = pEVar42" identifier = identifier) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar25 = pEVar4;" statement_identifier : (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c));" (call_expression "(**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c))" (parenthesized_expression "(**(code **)(iVar34 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar34 + -0x7ae0)" * (pointer_expression "*(code **)(iVar34 + -0x7ae0)" * (cast_expression "(code **)(iVar34 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7ae0)" ( (binary_expression "iVar34 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar4,pEVar4,pEVar16,*(undefined4 *)(puVar35 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar35 + -0x6c)" * (cast_expression "(undefined4 *)(puVar35 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x6c)" ( (binary_expression "puVar35 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar26._0_1_ = pEVar39->e_ident_magic_num;\n        uVar26._1_1_ = pEVar39->e_ident_magic_str[0];\n        uVar26._2_1_ = pEVar39->e_ident_magic_str[1];\n        uVar26._3_1_ = pEVar39->e_ident_magic_str[2];\n        pEVar6 = pEVar4;\n        pEVar25 = pEVar39;\n        if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }\n        pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n        pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n        pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n        pEVar6->e_ident_magic_str[2] = (char)uVar26;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar26._0_1_ = pEVar39->e_ident_magic_num;" (assignment_expression "uVar26._0_1_ = pEVar39->e_ident_magic_num" (field_expression "uVar26._0_1_" identifier . field_identifier) = (field_expression "pEVar39->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar26._1_1_ = pEVar39->e_ident_magic_str[0];" (assignment_expression "uVar26._1_1_ = pEVar39->e_ident_magic_str[0]" (field_expression "uVar26._1_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[0]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._2_1_ = pEVar39->e_ident_magic_str[1];" (assignment_expression "uVar26._2_1_ = pEVar39->e_ident_magic_str[1]" (field_expression "uVar26._2_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[1]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar26._3_1_ = pEVar39->e_ident_magic_str[2];" (assignment_expression "uVar26._3_1_ = pEVar39->e_ident_magic_str[2]" (field_expression "uVar26._3_1_" identifier . field_identifier) = (subscript_expression "pEVar39->e_ident_magic_str[2]" (field_expression "pEVar39->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar6 = pEVar4;" (assignment_expression "pEVar6 = pEVar4" identifier = identifier) ;) (expression_statement "pEVar25 = pEVar39;" (assignment_expression "pEVar25 = pEVar39" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);\n          pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);\n        }" { (do_statement "do {\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n            pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);\n            pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);\n            pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);\n            pEVar6->e_ident_magic_str[2] = (char)uVar26;\n            pwVar8 = (word *)((int)pwVar8 + -1);\n            uVar26 = *(undefined4 *)&pEVar25->e_ident_class;\n            pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n            pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;\n          }" { (expression_statement "pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "pEVar6->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar8 = (word *)((int)pwVar8 + -1);" (assignment_expression "pwVar8 = (word *)((int)pwVar8 + -1)" identifier = (cast_expression "(word *)((int)pwVar8 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar8 + -1)" ( (binary_expression "(int)pwVar8 + -1" (cast_expression "(int)pwVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar26 = *(undefined4 *)&pEVar25->e_ident_class;" (assignment_expression "uVar26 = *(undefined4 *)&pEVar25->e_ident_class" identifier = (pointer_expression "*(undefined4 *)&pEVar25->e_ident_class" * (cast_expression "(undefined4 *)&pEVar25->e_ident_class" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->e_ident_class" & (field_expression "pEVar25->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar6->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)&pEVar25->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar25->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->e_ident_class" & (field_expression "pEVar25->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 "pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5);" (assignment_expression "pEVar6 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5)" ( (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar16 * 4 + -5" (binary_expression "pEVar4->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18);" (assignment_expression "pEVar6->e_ident_magic_num = (char)((uint)uVar26 >> 0x18)" (field_expression "pEVar6->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x18)" ( (binary_expression "(uint)uVar26 >> 0x18" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10);" (assignment_expression "pEVar6->e_ident_magic_str[0] = (char)((uint)uVar26 >> 0x10)" (subscript_expression "pEVar6->e_ident_magic_str[0]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 0x10)" ( (binary_expression "(uint)uVar26 >> 0x10" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8);" (assignment_expression "pEVar6->e_ident_magic_str[1] = (char)((uint)uVar26 >> 8)" (subscript_expression "pEVar6->e_ident_magic_str[1]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar26 >> 8)" ( (binary_expression "(uint)uVar26 >> 8" (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar6->e_ident_magic_str[2] = (char)uVar26;" (assignment_expression "pEVar6->e_ident_magic_str[2] = (char)uVar26" (subscript_expression "pEVar6->e_ident_magic_str[2]" (field_expression "pEVar6->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;) (expression_statement "(**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6);" (call_expression "(**(code **)(iVar34 + -0x7ae0))(pEVar4,pEVar4,0,pEVar6)" (parenthesized_expression "(**(code **)(iVar34 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar34 + -0x7ae0)" * (pointer_expression "*(code **)(iVar34 + -0x7ae0)" * (cast_expression "(code **)(iVar34 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7ae0)" ( (binary_expression "iVar34 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar4,pEVar4,0,pEVar6)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar6 = pEVar27;" (assignment_expression "pEVar6 = pEVar27" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar37 = *(int **)(puVar35 + -0x54);" statement_identifier : (expression_statement "piVar37 = *(int **)(puVar35 + -0x54);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x54)" identifier = (pointer_expression "*(int **)(puVar35 + -0x54)" * (cast_expression "(int **)(puVar35 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar37 < 0) {\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar37 < 0)" ( (binary_expression "*piVar37 < 0" (pointer_expression "*piVar37" * identifier) < number_literal) )) (compound_statement "{\n        pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);\n        pEVar25 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar23);\n        pcVar51 = *(code **)(puVar35 + -0x88);\n        pEVar23->e_ident_class = 0;\n        pEVar23->e_ident_data = 0;\n        pEVar23->e_ident_version = 0;\n        pEVar23->e_ident_osabi = 0;\n      }" { (expression_statement "pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54);" (assignment_expression "pEVar23 = *(Elf32_Ehdr **)(puVar35 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar51 + -0x7a84))(pEVar23);" (call_expression "(**(code **)(pcVar51 + -0x7a84))(pEVar23)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7a84))" ( (pointer_expression "**(code **)(pcVar51 + -0x7a84)" * (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(pEVar23)" ( identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar23->e_ident_class = 0;" (assignment_expression "pEVar23->e_ident_class = 0" (field_expression "pEVar23->e_ident_class" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar23->e_ident_data = 0;" (assignment_expression "pEVar23->e_ident_data = 0" (field_expression "pEVar23->e_ident_data" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar23->e_ident_version = 0;" (assignment_expression "pEVar23->e_ident_version = 0" (field_expression "pEVar23->e_ident_version" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar23->e_ident_osabi = 0;" (assignment_expression "pEVar23->e_ident_osabi = 0" (field_expression "pEVar23->e_ident_osabi" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar35 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar35 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar35 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar35 + -0x54) + 4" (pointer_expression "*(int *)(puVar35 + -0x54)" * (cast_expression "(int *)(puVar35 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x54)" ( (binary_expression "puVar35 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    piVar37 = *(int **)(puVar35 + -0x40);" statement_identifier : (expression_statement "piVar37 = *(int **)(puVar35 + -0x40);" (assignment_expression "piVar37 = *(int **)(puVar35 + -0x40)" identifier = (pointer_expression "*(int **)(puVar35 + -0x40)" * (cast_expression "(int **)(puVar35 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x40)" ( (binary_expression "puVar35 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar12 = *(int **)(puVar35 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar35 + -0x58)" identifier = (pointer_expression "*(int **)(puVar35 + -0x58)" * (cast_expression "(int **)(puVar35 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x58)" ( (binary_expression "puVar35 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar37 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(piVar37 != (int *)0x0)" ( (binary_expression "piVar37 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar44 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;\n    *(undefined4 *)(puVar35 + -0x34) = 1;\n    *(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar35 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar44 + 0x66c10);" (assignment_expression "pcVar51 = *(code **)(pcVar44 + 0x66c10)" identifier = (pointer_expression "*(code **)(pcVar44 + 0x66c10)" * (cast_expression "(code **)(pcVar44 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + 0x66c10)" ( (binary_expression "pcVar44 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar35 + -0x3c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar35 + -0x3c)" * (cast_expression "(Elf32_Ehdr **)(puVar35 + -0x3c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x3c)" ( (binary_expression "puVar35 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar35 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar35 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar35 + -0x34)" * (cast_expression "(undefined4 *)(puVar35 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x34)" ( (binary_expression "puVar35 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar35 + -0x30) = puVar35 + -0x3c" (pointer_expression "*(undefined1 **)(puVar35 + -0x30)" * (cast_expression "(undefined1 **)(puVar35 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x30)" ( (binary_expression "puVar35 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar35 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = *(code **)(puVar35 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar35 + -0x88)" identifier = (pointer_expression "*(code **)(puVar35 + -0x88)" * (cast_expression "(code **)(puVar35 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x88)" ( (binary_expression "puVar35 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar12 = *(int **)(puVar35 + -0x58);" statement_identifier : (expression_statement "piVar12 = *(int **)(puVar35 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar35 + -0x58)" identifier = (pointer_expression "*(int **)(puVar35 + -0x58)" * (cast_expression "(int **)(puVar35 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + -0x58)" ( (binary_expression "puVar35 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar35 + -0x2c) == *piVar12) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar35 + -0x2c) == *piVar12)" ( (binary_expression "*(int *)(puVar35 + -0x2c) == *piVar12" (pointer_expression "*(int *)(puVar35 + -0x2c)" * (cast_expression "(int *)(puVar35 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + -0x2c)" ( (binary_expression "puVar35 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b70)" * (cast_expression "(code **)(pcVar51 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b70)" ( (binary_expression "pcVar51 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x3153c;" (assignment_expression "uVar41 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar44 = pcVar51 + 0x6db00;" (assignment_expression "pcVar44 = pcVar51 + 0x6db00" identifier = (binary_expression "pcVar51 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar48 = puVar49 + -0x38;" (assignment_expression "puVar48 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar6" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x10)" ( (binary_expression "puVar49 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar12 = *(int **)(pcVar51 + 0x66000);" (assignment_expression "piVar12 = *(int **)(pcVar51 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x66000)" * (cast_expression "(int **)(pcVar51 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66000)" ( (binary_expression "pcVar51 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar49 + -8) = puVar35 + -0xa0" (pointer_expression "*(undefined1 **)(puVar49 + -8)" * (cast_expression "(undefined1 **)(puVar49 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -8)" ( (binary_expression "puVar49 + -8" identifier + number_literal) )))) = (binary_expression "puVar35 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar38" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x14)" ( (binary_expression "puVar49 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar23" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x18)" ( (binary_expression "puVar49 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar49 + -4) = uVar41;" (assignment_expression "*(undefined4 *)(puVar49 + -4) = uVar41" (pointer_expression "*(undefined4 *)(puVar49 + -4)" * (cast_expression "(undefined4 *)(puVar49 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -4)" ( (binary_expression "puVar49 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0xc)" ( (binary_expression "puVar49 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar49 + -0x28) = pcVar44;" (assignment_expression "*(code **)(puVar49 + -0x28) = pcVar44" (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar49 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar49 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar25) {\n    if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }\n    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);\n    pcVar44 = *(code **)(puVar49 + -0x28);\n    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);\n    uVar5 = 8;\n    do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    iVar36 = 0;\n    uVar55 = 1;\n    iVar7 = 0;\n    uVar5 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    piVar40 = *(int **)(puVar49 + -0x20);\n    if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar25)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar25" (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 (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }\n    iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);\n    pcVar44 = *(code **)(puVar49 + -0x28);\n    puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);\n    uVar5 = 8;\n    do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    iVar36 = 0;\n    uVar55 = 1;\n    iVar7 = 0;\n    uVar5 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    piVar40 = *(int **)(puVar49 + -0x20);\n    if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n  }" { (if_statement "if (*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)) {\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }" if (parenthesized_expression "(*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1))" ( (binary_expression "*piVar37 < (int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)" (pointer_expression "*piVar37" * identifier) < (cast_expression "(int)(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1)" ( (binary_expression "((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6) + 1" (binary_expression "((uint)pEVar25 >> 5) + ((uint)pEVar25 >> 6)" (parenthesized_expression "((uint)pEVar25 >> 5)" ( (binary_expression "(uint)pEVar25 >> 5" (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar25 >> 6)" ( (binary_expression "(uint)pEVar25 >> 6" (cast_expression "(uint)pEVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();" (assignment_expression "pEVar9 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar51 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar51 + 0x6607c)" * (pointer_expression "*(code **)(pcVar51 + 0x6607c)" * (cast_expression "(code **)(pcVar51 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x6607c)" ( (binary_expression "pcVar51 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar44 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar44 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }" else (compound_statement "{\n      pEVar9 = (Elf32_Ehdr *)piVar37[2];\n    }" { (expression_statement "pEVar9 = (Elf32_Ehdr *)piVar37[2];" (assignment_expression "pEVar9 = (Elf32_Ehdr *)piVar37[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar37[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar37[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25);" (assignment_expression "iVar7 = (**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25)" identifier = (call_expression "(**(code **)(pcVar44 + -0x7efc))(pEVar9,pEVar25)" (parenthesized_expression "(**(code **)(pcVar44 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar44 + -0x7efc)" * (pointer_expression "*(code **)(pcVar44 + -0x7efc)" * (cast_expression "(code **)(pcVar44 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7efc)" ( (binary_expression "pcVar44 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar9,pEVar25)" ( identifier , identifier )))) ;) (expression_statement "pcVar44 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar44 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c);" (assignment_expression "puVar33 = (undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar44 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar44 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar44 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar44 + -0x7c6c)" * (cast_expression "(int *)(pcVar44 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + -0x7c6c)" ( (binary_expression "pcVar44 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar5 = 8;" (assignment_expression "uVar5 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    } while (pEVar38 < pEVar25);" do (compound_statement "{\n      uVar54 = uVar5;\n      pEVar38 = (Elf32_Ehdr *)*puVar33;\n      puVar33 = puVar33 + -1;\n      uVar5 = uVar54 - 1;\n    }" { (expression_statement "uVar54 = uVar5;" (assignment_expression "uVar54 = uVar5" identifier = identifier) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)*puVar33;" (assignment_expression "pEVar38 = (Elf32_Ehdr *)*puVar33" identifier = (cast_expression "(Elf32_Ehdr *)*puVar33" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier))) ;) (expression_statement "puVar33 = puVar33 + -1;" (assignment_expression "puVar33 = puVar33 + -1" identifier = (binary_expression "puVar33 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar54 - 1;" (assignment_expression "uVar5 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar38 < pEVar25)" ( (binary_expression "pEVar38 < pEVar25" identifier < identifier) )) ;) (if_statement "if (uVar54 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar54 == 0)" ( (binary_expression "uVar54 == 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 "uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4;" (assignment_expression "uVar5 = ((iVar7 + 1U) / uVar54 + 1) * 4" identifier = (binary_expression "((iVar7 + 1U) / uVar54 + 1) * 4" (parenthesized_expression "((iVar7 + 1U) / uVar54 + 1)" ( (binary_expression "(iVar7 + 1U) / uVar54 + 1" (binary_expression "(iVar7 + 1U) / uVar54" (parenthesized_expression "(iVar7 + 1U)" ( (binary_expression "iVar7 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar49 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar49 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar49 + -0x20)" * (cast_expression "(undefined4 *)(puVar49 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar5 < 0x7f01) {\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }\n    else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(uVar5 < 0x7f01)" ( (binary_expression "uVar5 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar7 = -(uVar5 + 7 & 0xfffffff8);\n      puVar48 = puVar49 + iVar7 + -0x38;\n      pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);\n    }" { (expression_statement "iVar7 = -(uVar5 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar5 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar5 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar5 + 7 & 0xfffffff8)" ( (binary_expression "uVar5 + 7 & 0xfffffff8" (binary_expression "uVar5 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar48 = puVar49 + iVar7 + -0x38;" (assignment_expression "puVar48 = puVar49 + iVar7 + -0x38" identifier = (binary_expression "puVar49 + iVar7 + -0x38" (binary_expression "puVar49 + iVar7" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(puVar49 + iVar7 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar7 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar7 + -0x28)" ( (binary_expression "puVar49 + iVar7 + -0x28" (binary_expression "puVar49 + iVar7" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20);" (assignment_expression "pEVar38 = (Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar44 + -0x7d50))(puVar49 + -0x20)" (parenthesized_expression "(**(code **)(pcVar44 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar44 + -0x7d50)" * (pointer_expression "*(code **)(pcVar44 + -0x7d50)" * (cast_expression "(code **)(pcVar44 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7d50)" ( (binary_expression "pcVar44 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar44 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar44 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (expression_statement "uVar55 = 1;" (assignment_expression "uVar55 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar54 = 6;" (assignment_expression "uVar54 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);" do (compound_statement "{\n      uVar53 = uVar5 + 1;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;\n      iVar36 = iVar36 + (uVar55 & 1);\n      uVar5 = uVar53;\n      uVar54 = uVar17;\n    }" { (expression_statement "uVar53 = uVar5 + 1;" (assignment_expression "uVar53 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = uVar54;" (assignment_expression "uVar17 = uVar54" identifier = identifier) ;) (if_statement "if ((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }" if (parenthesized_expression "((uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0)" ( (binary_expression "(uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)) == 0" (parenthesized_expression "(uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4))" ( (binary_expression "uVar55 & *(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)" identifier & (pointer_expression "*(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)" * (cast_expression "(uint *)(&pEVar9->e_ident_magic_num + iVar36 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar9->e_ident_magic_num + iVar36 * 4)" ( (binary_expression "&pEVar9->e_ident_magic_num + iVar36 * 4" (pointer_expression "&pEVar9->e_ident_magic_num" & (field_expression "pEVar9->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "iVar36 * 4" identifier * number_literal)) ))))) )) == number_literal) )) (compound_statement "{\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }\n      }" { (expression_statement "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;" (assignment_expression "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3" identifier = (binary_expression "(uVar53 & 1) + 1 + uVar53 * 3" (binary_expression "(uVar53 & 1) + 1" (parenthesized_expression "(uVar53 & 1)" ( (binary_expression "uVar53 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar53 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20)" ( (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar25) >> 0x20" (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar25)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar25)" identifier (argument_list "(pEVar25)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar17 = uVar54 * uVar17;\n        }" { (expression_statement "uVar17 = uVar54 * uVar17;" (assignment_expression "uVar17 = uVar54 * uVar17" identifier = (binary_expression "uVar54 * uVar17" identifier * identifier)) ;) }) (else_clause "else {\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }" else (compound_statement "{\n          iVar34 = iVar7 * 4;\n          iVar7 = iVar7 + 1;\n          *(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;\n        }" { (expression_statement "iVar34 = iVar7 * 4;" (assignment_expression "iVar34 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54;" (assignment_expression "*(uint *)(&pEVar38->e_ident_magic_num + iVar34) = uVar54" (pointer_expression "*(uint *)(&pEVar38->e_ident_magic_num + iVar34)" * (cast_expression "(uint *)(&pEVar38->e_ident_magic_num + iVar34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar38->e_ident_magic_num + iVar34)" ( (binary_expression "&pEVar38->e_ident_magic_num + iVar34" (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)) + identifier) )))) = identifier) ;) }))) })) (expression_statement "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);" (assignment_expression "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f)" identifier = (binary_expression "uVar55 * 2 - ((int)uVar55 >> 0x1f)" (binary_expression "uVar55 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar55 >> 0x1f)" ( (binary_expression "(int)uVar55 >> 0x1f" (cast_expression "(int)uVar55" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar5 != ((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar25[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar25[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar25[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar25[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar25[-1].e_shentsize + 1" (cast_expression "(int)&pEVar25[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar25[-1].e_shentsize" & (field_expression "pEVar25[-1].e_shentsize" (subscript_expression "pEVar25[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar36 = iVar36 + (uVar55 & 1);" (assignment_expression "iVar36 = iVar36 + (uVar55 & 1)" identifier = (binary_expression "iVar36 + (uVar55 & 1)" identifier + (parenthesized_expression "(uVar55 & 1)" ( (binary_expression "uVar55 & 1" identifier & number_literal) )))) ;) (expression_statement "uVar5 = uVar53;" (assignment_expression "uVar5 = uVar53" identifier = identifier) ;) (expression_statement "uVar54 = uVar17;" (assignment_expression "uVar54 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar7 == 0) {\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar37[2] = uVar17;\n      piVar37[1] = 1;\n    }" { (expression_statement "*(uint *)piVar37[2] = uVar17;" (assignment_expression "*(uint *)piVar37[2] = uVar17" (pointer_expression "*(uint *)piVar37[2]" * (cast_expression "(uint *)piVar37[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar37[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar37[1] = 1;" (assignment_expression "piVar37[1] = 1" (subscript_expression "piVar37[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(pcVar44 + -0x7dbc);\n      *(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;\n      (*pcVar51)(piVar37,pEVar38,iVar7 + 1);\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar44 + -0x7dbc);" (assignment_expression "pcVar51 = *(code **)(pcVar44 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar44 + -0x7dbc)" * (cast_expression "(code **)(pcVar44 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7dbc)" ( (binary_expression "pcVar44 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17;" (assignment_expression "*(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4) = uVar17" (pointer_expression "*(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4)" * (cast_expression "(uint *)(&pEVar38->e_ident_magic_num + iVar7 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pEVar38->e_ident_magic_num + iVar7 * 4)" ( (binary_expression "&pEVar38->e_ident_magic_num + iVar7 * 4" (pointer_expression "&pEVar38->e_ident_magic_num" & (field_expression "pEVar38->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "(*pcVar51)(piVar37,pEVar38,iVar7 + 1);" (call_expression "(*pcVar51)(piVar37,pEVar38,iVar7 + 1)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(piVar37,pEVar38,iVar7 + 1)" ( identifier , identifier , (binary_expression "iVar7 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar44 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar44 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar40 = *(int **)(puVar49 + -0x20);" (assignment_expression "piVar40 = *(int **)(puVar49 + -0x20)" identifier = (pointer_expression "*(int **)(puVar49 + -0x20)" * (cast_expression "(int **)(puVar49 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (piVar40 != (int *)0x0) {\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(piVar40 != (int *)0x0)" ( (binary_expression "piVar40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar44 + -0x7a2c))();\n      pcVar44 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar44 + -0x7a2c))();" (call_expression "(**(code **)(pcVar44 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar44 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar44 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar44 + -0x7a2c)" * (cast_expression "(code **)(pcVar44 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7a2c)" ( (binary_expression "pcVar44 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar44 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar44 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;\n    piVar37[1] = 1;\n    piVar40 = piVar37;\n    pEVar38 = pEVar25;\n    pEVar25 = pEVar27;\n    puVar48 = puVar49 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar25 * 4 + *(int *)(pcVar51 + 0x65b2c)" (binary_expression "(int)pEVar25 * 4" (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar51 + 0x65b2c)" * (cast_expression "(int *)(pcVar51 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x65b2c)" ( (binary_expression "pcVar51 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num;" (assignment_expression "*(undefined4 *)piVar37[2] = *(undefined4 *)&pEVar27->e_ident_magic_num" (pointer_expression "*(undefined4 *)piVar37[2]" * (cast_expression "(undefined4 *)piVar37[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar37[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)&pEVar27->e_ident_magic_num" * (cast_expression "(undefined4 *)&pEVar27->e_ident_magic_num" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_magic_num" & (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "piVar37[1] = 1;" (assignment_expression "piVar37[1] = 1" (subscript_expression "piVar37[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar40 = piVar37;" (assignment_expression "piVar40 = piVar37" identifier = identifier) ;) (expression_statement "pEVar38 = pEVar25;" (assignment_expression "pEVar38 = pEVar25" identifier = identifier) ;) (expression_statement "pEVar25 = pEVar27;" (assignment_expression "pEVar25 = pEVar27" identifier = identifier) ;) (expression_statement "puVar48 = puVar49 + -0x38;" (assignment_expression "puVar48 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar49 + -0x1c) == *piVar12)" ( (binary_expression "*(int *)(puVar49 + -0x1c) == *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar51 = *(code **)(pcVar44 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar44 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar44 + -0x7b70)" * (cast_expression "(code **)(pcVar44 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7b70)" ( (binary_expression "pcVar44 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_probab_prime_p;" (assignment_expression "pcVar52 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar44 = *(code **)(pcVar51 + 0x659a8);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x659a8)" * (cast_expression "(code **)(pcVar51 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x659a8)" ( (binary_expression "pcVar51 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar48 + -0x24) = piVar37;" (assignment_expression "*(int **)(puVar48 + -0x24) = piVar37" (pointer_expression "*(int **)(puVar48 + -0x24)" * (cast_expression "(int **)(puVar48 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x24)" ( (binary_expression "puVar48 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar48 + -0x20) = piVar12;" (assignment_expression "*(int **)(puVar48 + -0x20) = piVar12" (pointer_expression "*(int **)(puVar48 + -0x20)" * (cast_expression "(int **)(puVar48 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x20)" ( (binary_expression "puVar48 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar37 = *(int **)(pcVar51 + 0x65da0);" (assignment_expression "piVar37 = *(int **)(pcVar51 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x65da0)" * (cast_expression "(int **)(pcVar51 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65da0)" ( (binary_expression "pcVar51 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x18) = pEVar39" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x18)" ( (binary_expression "puVar48 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x1c) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x1c)" ( (binary_expression "puVar48 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0;" (assignment_expression "*(code **)(puVar48 + -0x90) = pcVar51 + 0x6d8a0" (pointer_expression "*(code **)(puVar48 + -0x90)" * (cast_expression "(code **)(puVar48 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar51 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x10) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x10)" ( (binary_expression "puVar48 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x14)" ( (binary_expression "puVar48 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x28) = pEVar25" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x28)" ( (binary_expression "puVar48 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar48 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar48 + -4) = pcVar52" (pointer_expression "*(code **)(puVar48 + -4)" * (cast_expression "(code **)(puVar48 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -4)" ( (binary_expression "puVar48 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar48 + -8) = puVar49 + -0x38;" (assignment_expression "*(undefined1 **)(puVar48 + -8) = puVar49 + -0x38" (pointer_expression "*(undefined1 **)(puVar48 + -8)" * (cast_expression "(undefined1 **)(puVar48 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -8)" ( (binary_expression "puVar48 + -8" identifier + number_literal) )))) = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0xc) = pEVar4" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0xc)" ( (binary_expression "puVar48 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar48 + -0x2c) = *piVar37;" (assignment_expression "*(int *)(puVar48 + -0x2c) = *piVar37" (pointer_expression "*(int *)(puVar48 + -0x2c)" * (cast_expression "(int *)(puVar48 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x2c)" ( (binary_expression "puVar48 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar37" * identifier)) ;) (expression_statement "iVar7 = (*pcVar44)();" (assignment_expression "iVar7 = (*pcVar44)()" identifier = (call_expression "(*pcVar44)()" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar19 = (uint *)piVar40[2];" (assignment_expression "puVar19 = (uint *)piVar40[2]" identifier = (cast_expression "(uint *)piVar40[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar40[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar9 = (Elf32_Ehdr *)piVar40[1];" (assignment_expression "pEVar9 = (Elf32_Ehdr *)piVar40[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar40[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar40[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = *puVar19;" (assignment_expression "uVar5 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (if_statement "if (iVar7 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;\n    *(uint **)(puVar48 + -0x6c) = puVar19;\n    piVar40 = (int *)(puVar48 + -0x74);\n    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;\n  }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;\n    *(uint **)(puVar48 + -0x6c) = puVar19;\n    piVar40 = (int *)(puVar48 + -0x74);\n    *(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40);" (assignment_expression "iVar7 = (**(code **)(iVar36 + -0x7ab8))(piVar40)" identifier = (call_expression "(**(code **)(iVar36 + -0x7ab8))(piVar40)" (parenthesized_expression "(**(code **)(iVar36 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar36 + -0x7ab8)" * (pointer_expression "*(code **)(iVar36 + -0x7ab8)" * (cast_expression "(code **)(iVar36 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7ab8)" ( (binary_expression "iVar36 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(piVar40)" ( identifier )))) ;) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 < 1) {\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n      if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }\n      goto LAB_00031824;\n    }" { (if_statement "if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)) {\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }" if (parenthesized_expression "((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5))" ( (binary_expression "(pEVar9 != (Elf32_Ehdr *)0x0) && (uVar54 = uVar5 & 1, 2 < uVar5)" (parenthesized_expression "(pEVar9 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar54 = uVar5 & 1, 2 < uVar5)" ( (comma_expression "uVar54 = uVar5 & 1, 2 < uVar5" (assignment_expression "uVar54 = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) , (binary_expression "2 < uVar5" number_literal < identifier)) ))) )) (compound_statement "{\n        uVar55 = 3;\n        while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }\n      }" { (expression_statement "uVar55 = 3;" (assignment_expression "uVar55 = 3" identifier = number_literal) ;) (while_statement "while (uVar54 != 0) {\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }" while (parenthesized_expression "(uVar54 != 0)" ( (binary_expression "uVar54 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar55 == 0) {\n            trap(7);\n          }\n          uVar54 = uVar5 % uVar55;\n          if (uVar5 / uVar55 < uVar55) break;\n          uVar55 = uVar55 + 2;\n        }" { (if_statement "if (uVar55 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar55 == 0)" ( (binary_expression "uVar55 == 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 "uVar54 = uVar5 % uVar55;" (assignment_expression "uVar54 = uVar5 % uVar55" identifier = (binary_expression "uVar5 % uVar55" identifier % identifier)) ;) (if_statement "if (uVar5 / uVar55 < uVar55) break;" if (parenthesized_expression "(uVar5 / uVar55 < uVar55)" ( (binary_expression "uVar5 / uVar55 < uVar55" (binary_expression "uVar5 / uVar55" identifier / identifier) < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar55 = uVar55 + 2;" (assignment_expression "uVar55 = uVar55 + 2" identifier = (binary_expression "uVar55 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar9 = (Elf32_Ehdr *)-(int)pEVar9;" (assignment_expression "pEVar9 = (Elf32_Ehdr *)-(int)pEVar9" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar9" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar9" - (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar48 + -0x6c) = puVar19;" (assignment_expression "*(uint **)(puVar48 + -0x6c) = puVar19" (pointer_expression "*(uint **)(puVar48 + -0x6c)" * (cast_expression "(uint **)(puVar48 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x6c)" ( (binary_expression "puVar48 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar40 = (int *)(puVar48 + -0x74);" (assignment_expression "piVar40 = (int *)(puVar48 + -0x74)" identifier = (cast_expression "(int *)(puVar48 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x74)" ( (binary_expression "puVar48 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0x70) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x70)" ( (binary_expression "puVar48 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)) {\n    pEVar27 = pEVar9;\n    if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }\n  }" if (parenthesized_expression "((pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0))" ( (binary_expression "(pEVar9 != (Elf32_Ehdr *)0x0) && (uVar5 = uVar5 & 1, uVar5 != 0)" (parenthesized_expression "(pEVar9 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar9 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar5 = uVar5 & 1, uVar5 != 0)" ( (comma_expression "uVar5 = uVar5 & 1, uVar5 != 0" (assignment_expression "uVar5 = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) , (binary_expression "uVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    pEVar27 = pEVar9;\n    if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }\n  }" { (expression_statement "pEVar27 = pEVar9;" (assignment_expression "pEVar27 = pEVar9" identifier = identifier) ;) (if_statement "if ((int)pEVar9 < 10) {\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar9 < 10)" ( (binary_expression "(int)pEVar9 < 10" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar54 = (**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar36 + -0x7c24))(puVar19,pEVar9,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar36 + -0x7c24))" ( (pointer_expression "**(code **)(iVar36 + -0x7c24)" * (pointer_expression "*(code **)(iVar36 + -0x7c24)" * (cast_expression "(code **)(iVar36 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7c24)" ( (binary_expression "iVar36 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar9,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }" else (compound_statement "{\n      uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);\n      iVar36 = *(int *)(puVar48 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797);" (assignment_expression "uVar54 = (**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar36 + -0x7b80))(puVar19,pEVar9,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar36 + -0x7b80))" ( (pointer_expression "**(code **)(iVar36 + -0x7b80)" * (pointer_expression "*(code **)(iVar36 + -0x7b80)" * (cast_expression "(code **)(iVar36 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7b80)" ( (binary_expression "iVar36 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar9,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }" if (parenthesized_expression "((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))))" ( (binary_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7))" ( (binary_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)" (parenthesized_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5))" ( (binary_expression "(uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)" (parenthesized_expression "(uVar54 != (uVar54 / 3) * 3)" ( (binary_expression "uVar54 != (uVar54 / 3) * 3" identifier != (binary_expression "(uVar54 / 3) * 3" (parenthesized_expression "(uVar54 / 3)" ( (binary_expression "uVar54 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar54 != (uVar54 / 5) * 5)" ( (binary_expression "uVar54 != (uVar54 / 5) * 5" identifier != (binary_expression "(uVar54 / 5) * 5" (parenthesized_expression "(uVar54 / 5)" ( (binary_expression "uVar54 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 7) * 7)" ( (binary_expression "uVar54 != (uVar54 / 7) * 7" identifier != (binary_expression "(uVar54 / 7) * 7" (parenthesized_expression "(uVar54 / 7)" ( (binary_expression "uVar54 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))" ( (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)" (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb" identifier != (binary_expression "(uVar54 / 0xb) * 0xb" (parenthesized_expression "(uVar54 / 0xb)" ( (binary_expression "uVar54 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0xd) * 0xd)" ( (binary_expression "uVar54 != (uVar54 / 0xd) * 0xd" identifier != (binary_expression "(uVar54 / 0xd) * 0xd" (parenthesized_expression "(uVar54 / 0xd)" ( (binary_expression "uVar54 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))" ( (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11" identifier != (binary_expression "(uVar54 / 0x11) * 0x11" (parenthesized_expression "(uVar54 / 0x11)" ( (binary_expression "uVar54 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))" ( (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)" (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13" identifier != (binary_expression "(uVar54 / 0x13) * 0x13" (parenthesized_expression "(uVar54 / 0x13)" ( (binary_expression "uVar54 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0x17) * 0x17)" ( (binary_expression "uVar54 != (uVar54 / 0x17) * 0x17" identifier != (binary_expression "(uVar54 / 0x17) * 0x17" (parenthesized_expression "(uVar54 / 0x17)" ( (binary_expression "uVar54 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 0x1d) * 0x1d)" ( (binary_expression "uVar54 != (uVar54 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar54 / 0x1d) * 0x1d" (parenthesized_expression "(uVar54 / 0x1d)" ( (binary_expression "uVar54 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);\n      iVar7 = *(int *)(puVar48 + -0x90);\n      if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);\n      iVar36 = *(int *)(puVar48 + -0x90);\n      pEVar27 = pEVar38;\n    }" { (expression_statement "uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2);" (assignment_expression "uVar54 = (**(code **)(iVar36 + -0x7f14))(piVar40,2)" identifier = (call_expression "(**(code **)(iVar36 + -0x7f14))(piVar40,2)" (parenthesized_expression "(**(code **)(iVar36 + -0x7f14))" ( (pointer_expression "**(code **)(iVar36 + -0x7f14)" * (pointer_expression "*(code **)(iVar36 + -0x7f14)" * (cast_expression "(code **)(iVar36 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7f14)" ( (binary_expression "iVar36 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar40,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar54) {\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar54)" ( (binary_expression "0x1f < uVar54" number_literal < identifier) )) (compound_statement "{\n        iVar34 = 0;\n        puVar35 = puVar48 + -0x68;\n        uVar55 = 0x1f;\n        iVar36 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "puVar35 = puVar48 + -0x68;" (assignment_expression "puVar35 = puVar48 + -0x68" identifier = (binary_expression "puVar48 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar55 = 0x1f;" (assignment_expression "uVar55 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar17 = 3;" statement_identifier : (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        } while (uVar53 != 0);" do (compound_statement "{\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar36;\n        }" { (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "uVar53 = uVar55 % uVar17;" (assignment_expression "uVar53 = uVar55 % uVar17" identifier = (binary_expression "uVar55 % uVar17" identifier % identifier)) ;) (if_statement "if (uVar55 / uVar17 < uVar17) {\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar55 / uVar17 < uVar17)" ( (binary_expression "uVar55 / uVar17 < uVar17" (binary_expression "uVar55 / uVar17" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar48 + -0x7c) = puVar35;\n            *(int *)(puVar48 + -0x80) = iVar34;\n            *(uint *)(puVar48 + -0x84) = uVar54;\n            if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }\n            puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0)" ( (binary_expression "iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20) == 0" (binary_expression "iVar34 * uVar5 + (int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20)" (binary_expression "iVar34 * uVar5" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20)" ( (binary_expression "(ulonglong)uVar5 * (ulonglong)uVar55 >> 0x20" (binary_expression "(ulonglong)uVar5 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar50 = iVar36 + 1;\n              uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar50 = iVar36 + 1;" (assignment_expression "iVar50 = iVar36 + 1" identifier = (binary_expression "iVar36 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar5 * (ulonglong)uVar55)" identifier = (call_expression "(uint)((ulonglong)uVar5 * (ulonglong)uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar5 * (ulonglong)uVar55)" ( (binary_expression "(ulonglong)uVar5 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar48 + -0x7c) = puVar35;" (assignment_expression "*(undefined1 **)(puVar48 + -0x7c) = puVar35" (pointer_expression "*(undefined1 **)(puVar48 + -0x7c)" * (cast_expression "(undefined1 **)(puVar48 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x7c)" ( (binary_expression "puVar48 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar48 + -0x80) = iVar34;" (assignment_expression "*(int *)(puVar48 + -0x80) = iVar34" (pointer_expression "*(int *)(puVar48 + -0x80)" * (cast_expression "(int *)(puVar48 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x80)" ( (binary_expression "puVar48 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar48 + -0x84) = uVar54;" (assignment_expression "*(uint *)(puVar48 + -0x84) = uVar54" (pointer_expression "*(uint *)(puVar48 + -0x84)" * (cast_expression "(uint *)(puVar48 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x84)" ( (binary_expression "puVar48 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar9 < 10) {\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }\n            else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar9 < 10)" ( (binary_expression "(int)pEVar9 < 10" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n            }" { (expression_statement "uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0);" (assignment_expression "uVar5 = (**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0)" identifier = (call_expression "(**(code **)(iVar7 + -0x7c68))(puVar19,pEVar9,uVar5,0)" (parenthesized_expression "(**(code **)(iVar7 + -0x7c68))" ( (pointer_expression "**(code **)(iVar7 + -0x7c68)" * (pointer_expression "*(code **)(iVar7 + -0x7c68)" * (cast_expression "(code **)(iVar7 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7c68)" ( (binary_expression "iVar7 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar9,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar48 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar48 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar48 + -0x84)" * (cast_expression "(uint *)(puVar48 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x84)" ( (binary_expression "puVar48 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = *(int *)(puVar48 + -0x80);" (assignment_expression "iVar34 = *(int *)(puVar48 + -0x80)" identifier = (pointer_expression "*(int *)(puVar48 + -0x80)" * (cast_expression "(int *)(puVar48 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x80)" ( (binary_expression "puVar48 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined1 **)(puVar48 + -0x7c);" (assignment_expression "puVar35 = *(undefined1 **)(puVar48 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar48 + -0x7c)" * (cast_expression "(undefined1 **)(puVar48 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x7c)" ( (binary_expression "puVar48 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }" else (compound_statement "{\n              uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);\n              iVar7 = *(int *)(puVar48 + -0x90);\n              puVar35 = *(undefined1 **)(puVar48 + -0x7c);\n              iVar34 = *(int *)(puVar48 + -0x80);\n              uVar54 = *(uint *)(puVar48 + -0x84);\n            }" { (expression_statement "uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5);" (assignment_expression "uVar5 = (**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5)" identifier = (call_expression "(**(code **)(iVar7 + -0x7b80))(puVar19,pEVar9,uVar5)" (parenthesized_expression "(**(code **)(iVar7 + -0x7b80))" ( (pointer_expression "**(code **)(iVar7 + -0x7b80)" * (pointer_expression "*(code **)(iVar7 + -0x7b80)" * (cast_expression "(code **)(iVar7 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7b80)" ( (binary_expression "iVar7 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar9,uVar5)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar7 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined1 **)(puVar48 + -0x7c);" (assignment_expression "puVar35 = *(undefined1 **)(puVar48 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar48 + -0x7c)" * (cast_expression "(undefined1 **)(puVar48 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0x7c)" ( (binary_expression "puVar48 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = *(int *)(puVar48 + -0x80);" (assignment_expression "iVar34 = *(int *)(puVar48 + -0x80)" identifier = (pointer_expression "*(int *)(puVar48 + -0x80)" * (cast_expression "(int *)(puVar48 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x80)" ( (binary_expression "puVar48 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar48 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar48 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar48 + -0x84)" * (cast_expression "(uint *)(puVar48 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x84)" ( (binary_expression "puVar48 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4);" (assignment_expression "puVar22 = (uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar35 + (iVar36 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar35 + (iVar36 + 0x3fffffff) * 4)" ( (binary_expression "puVar35 + (iVar36 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar36 + 0x3fffffff) * 4" (parenthesized_expression "(iVar36 + 0x3fffffff)" ( (binary_expression "iVar36 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar17 = uVar17 + 2;" (assignment_expression "uVar17 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (expression_statement "iVar50 = iVar36;" (assignment_expression "iVar50 = iVar36" identifier = identifier) ;) }) while (parenthesized_expression "(uVar53 != 0)" ( (binary_expression "uVar53 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      (**(code **)(iVar7 + -0x7d48))(piVar40);" statement_identifier : (expression_statement "(**(code **)(iVar7 + -0x7d48))(piVar40);" (call_expression "(**(code **)(iVar7 + -0x7d48))(piVar40)" (parenthesized_expression "(**(code **)(iVar7 + -0x7d48))" ( (pointer_expression "**(code **)(iVar7 + -0x7d48)" * (pointer_expression "*(code **)(iVar7 + -0x7d48)" * (cast_expression "(code **)(iVar7 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7d48)" ( (binary_expression "iVar7 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(piVar40)" ( identifier ))) ;)) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = pEVar38;" (assignment_expression "pEVar27 = pEVar38" identifier = identifier) ;) })) })) (labeled_statement "LAB_00031824:\n  iVar7 = *(int *)(puVar48 + -0x2c);" statement_identifier : (expression_statement "iVar7 = *(int *)(puVar48 + -0x2c);" (assignment_expression "iVar7 = *(int *)(puVar48 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar48 + -0x2c)" * (cast_expression "(int *)(puVar48 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x2c)" ( (binary_expression "puVar48 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar7 == *piVar37) {\n    return;\n  }" if (parenthesized_expression "(iVar7 == *piVar37)" ( (binary_expression "iVar7 == *piVar37" identifier == (pointer_expression "*piVar37" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00031c58:\n  pcVar51 = *(code **)(iVar36 + -0x7b70);" statement_identifier : (expression_statement "pcVar51 = *(code **)(iVar36 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar36 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar36 + -0x7b70)" * (cast_expression "(code **)(iVar36 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7b70)" ( (binary_expression "iVar36 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar41 = 0x31c64;" (assignment_expression "uVar41 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar44 = pcVar51 + 0x6d3d0;" (assignment_expression "pcVar44 = pcVar51 + 0x6d3d0" identifier = (binary_expression "pcVar51 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar18 = *(char **)(pcVar51 + 0x65518);" (assignment_expression "pcVar18 = *(char **)(pcVar51 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar51 + 0x65518)" * (cast_expression "(char **)(pcVar51 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65518)" ( (binary_expression "pcVar51 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar48 + -0xa8) = piVar37;" (assignment_expression "*(int **)(puVar48 + -0xa8) = piVar37" (pointer_expression "*(int **)(puVar48 + -0xa8)" * (cast_expression "(int **)(puVar48 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0xa8)" ( (binary_expression "puVar48 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9;" (assignment_expression "*(Elf32_Ehdr **)(puVar48 + -0xac) = pEVar9" (pointer_expression "*(Elf32_Ehdr **)(puVar48 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar48 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0xac)" ( (binary_expression "puVar48 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar48 + -0xb8) = pcVar44;" (assignment_expression "*(code **)(puVar48 + -0xb8) = pcVar44" (pointer_expression "*(code **)(puVar48 + -0xb8)" * (cast_expression "(code **)(puVar48 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0xb8)" ( (binary_expression "puVar48 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar48 + -0xa4) = uVar41;" (assignment_expression "*(undefined4 *)(puVar48 + -0xa4) = uVar41" (pointer_expression "*(undefined4 *)(puVar48 + -0xa4)" * (cast_expression "(undefined4 *)(puVar48 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0xa4)" ( (binary_expression "puVar48 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar18 == '\0') {\n    pcVar44 = *(code **)(pcVar51 + 0x65990);\n    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar44)(uVar41);\n    pcVar44 = *(code **)(puVar48 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar44 = *(code **)(pcVar51 + 0x65990);\n    uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar44)(uVar41);\n    pcVar44 = *(code **)(puVar48 + -0xb8);\n  }" { (expression_statement "pcVar44 = *(code **)(pcVar51 + 0x65990);" (assignment_expression "pcVar44 = *(code **)(pcVar51 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x65990)" * (cast_expression "(code **)(pcVar51 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65990)" ( (binary_expression "pcVar51 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = *(undefined4 *)(pcVar51 + 0x6560c);" (assignment_expression "uVar41 = *(undefined4 *)(pcVar51 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar51 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar51 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x6560c)" ( (binary_expression "pcVar51 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar18 = '\x01';" (assignment_expression "*pcVar18 = '\x01'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar44)(uVar41);" (call_expression "(*pcVar44)(uVar41)" (parenthesized_expression "(*pcVar44)" ( (pointer_expression "*pcVar44" * identifier) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "pcVar44 = *(code **)(puVar48 + -0xb8);" (assignment_expression "pcVar44 = *(code **)(puVar48 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar48 + -0xb8)" * (cast_expression "(code **)(puVar48 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar48 + -0xb8)" ( (binary_expression "puVar48 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar9 = pEVar27;" (assignment_expression "pEVar9 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n    pEVar9 = (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    pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;\n  }" { (expression_statement "pEVar9 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar9 = (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 "(**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5);" (call_expression "(**(code **)(pcVar44 + -0x7f7c))(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5)" (parenthesized_expression "(**(code **)(pcVar44 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar44 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar44 + -0x7f7c)" * (cast_expression "(code **)(pcVar44 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar44 + -0x7f7c)" ( (binary_expression "pcVar44 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar7,*(undefined4 *)(pcVar44 + -0x7dc4),(int)pEVar9 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar44 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar44 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar44 + -0x7dc4)" ( (binary_expression "pcVar44 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar9 << 5" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (if_statement "if ((int)pEVar27 < 0) {\n    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);\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    *(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);\n  }" { (expression_statement "*(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4);" (assignment_expression "*(int *)(iVar7 + 4) = -*(int *)(iVar7 + 4)" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = (unary_expression "-*(int *)(iVar7 + 4)" - (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))))) ;) })) (return_statement "return;" return ;) (labeled_statement "joined_r0x00030154:\n  if (iVar7 != 0) goto LAB_00030180;" statement_identifier : (if_statement "if (iVar7 != 0) goto LAB_00030180;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;))) (expression_statement "pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);" (assignment_expression "pEVar4 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar4[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar4[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar4[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar4[-1].e_shstrndx" & (field_expression "pEVar4[-1].e_shstrndx" (subscript_expression "pEVar4[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar4 == (Elf32_Ehdr *)0x0) goto LAB_00030180;" if (parenthesized_expression "(pEVar4 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar4 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;)) (expression_statement "iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum;" (assignment_expression "iVar7._0_2_ = pEVar6[-0xffffffff00000001].e_phnum" (field_expression "iVar7._0_2_" identifier . field_identifier) = (field_expression "pEVar6[-0xffffffff00000001].e_phnum" (subscript_expression "pEVar6[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize;" (assignment_expression "iVar7._2_2_ = pEVar6[-0xffffffff00000001].e_shentsize" (field_expression "iVar7._2_2_" identifier . field_identifier) = (field_expression "pEVar6[-0xffffffff00000001].e_shentsize" (subscript_expression "pEVar6[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)&pEVar6[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar6[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar6[-1].e_shnum" & (field_expression "pEVar6[-1].e_shnum" (subscript_expression "pEVar6[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) (labeled_statement "LAB_00030180:\n  uVar5._0_1_ = in_t3->e_ident_magic_num;" statement_identifier : (expression_statement "uVar5._0_1_ = in_t3->e_ident_magic_num;" (assignment_expression "uVar5._0_1_ = in_t3->e_ident_magic_num" (field_expression "uVar5._0_1_" identifier . field_identifier) = (field_expression "in_t3->e_ident_magic_num" identifier -> field_identifier)) ;)) (expression_statement "uVar5._1_1_ = in_t3->e_ident_magic_str[0];" (assignment_expression "uVar5._1_1_ = in_t3->e_ident_magic_str[0]" (field_expression "uVar5._1_1_" identifier . field_identifier) = (subscript_expression "in_t3->e_ident_magic_str[0]" (field_expression "in_t3->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar5._2_1_ = in_t3->e_ident_magic_str[1];" (assignment_expression "uVar5._2_1_ = in_t3->e_ident_magic_str[1]" (field_expression "uVar5._2_1_" identifier . field_identifier) = (subscript_expression "in_t3->e_ident_magic_str[1]" (field_expression "in_t3->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar5._3_1_ = in_t3->e_ident_magic_str[2];" (assignment_expression "uVar5._3_1_ = in_t3->e_ident_magic_str[2]" (field_expression "uVar5._3_1_" identifier . field_identifier) = (subscript_expression "in_t3->e_ident_magic_str[2]" (field_expression "in_t3->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (((uVar5 & 1) == 0) || (-1 < b->_mp_size)) {\n    if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }\n    r->_mp_size = (int)pEVar4;\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }\n  }\n  else {\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }" if (parenthesized_expression "(((uVar5 & 1) == 0) || (-1 < b->_mp_size))" ( (binary_expression "((uVar5 & 1) == 0) || (-1 < b->_mp_size)" (parenthesized_expression "((uVar5 & 1) == 0)" ( (binary_expression "(uVar5 & 1) == 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(-1 < b->_mp_size)" ( (binary_expression "-1 < b->_mp_size" number_literal < (field_expression "b->_mp_size" identifier -> field_identifier)) ))) )) (compound_statement "{\n    if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }\n    r->_mp_size = (int)pEVar4;\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }\n  }" { (if_statement "if (r->_mp_alloc < (int)pEVar4) {\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }" if (parenthesized_expression "(r->_mp_alloc < (int)pEVar4)" ( (binary_expression "r->_mp_alloc < (int)pEVar4" (field_expression "r->_mp_alloc" identifier -> field_identifier) < (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00030268:\n      pEVar25 = pEVar4;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n    }" { (labeled_statement "LAB_00030268:\n      pEVar25 = pEVar4;" statement_identifier : (expression_statement "pEVar25 = pEVar4;" (assignment_expression "pEVar25 = pEVar4" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(r);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(r)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(r)" ( identifier ))) ;) })) (expression_statement "r->_mp_size = (int)pEVar4;" (assignment_expression "r->_mp_size = (int)pEVar4" (field_expression "r->_mp_size" identifier -> field_identifier) = (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s0 = pEVar4;" (assignment_expression "unaff_s0 = pEVar4" identifier = identifier) ;) (if_statement "if (pEVar4 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }" if (parenthesized_expression "(pEVar4 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar4 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);\n      pEVar27 = (Elf32_Ehdr *)r->_mp_d;\n      pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;\n      pEVar23 = pEVar27;\n      pEVar6 = unaff_s5;\n      if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }\n      *(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;\n      unaff_s0 = pEVar4;\n    }" { (labeled_statement "LAB_000301b4:\n      pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1);" (assignment_expression "pwVar8 = (word *)((int)&pEVar4[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar4[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar4[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar4[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar4[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar4[-1].e_shstrndx" & (field_expression "pEVar4[-1].e_shstrndx" (subscript_expression "pEVar4[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (expression_statement "pEVar27 = (Elf32_Ehdr *)r->_mp_d;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)r->_mp_d" identifier = (cast_expression "(Elf32_Ehdr *)r->_mp_d" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "r->_mp_d" identifier -> field_identifier))) ;) (expression_statement "pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&unaff_s5->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&unaff_s5->e_ident_magic_num" & (field_expression "unaff_s5->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "pEVar23 = pEVar27;" (assignment_expression "pEVar23 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar6 = unaff_s5;" (assignment_expression "pEVar6 = unaff_s5" identifier = identifier) ;) (if_statement "if (pwVar8 != (word *)0x0) {\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }" if (parenthesized_expression "(pwVar8 != (word *)0x0)" ( (binary_expression "pwVar8 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);\n        pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);\n        pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;\n      }" { (do_statement "do {\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        } while (pwVar8 != (word *)0x0);" do (compound_statement "{\n          *(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;\n          pwVar8 = (word *)((int)pwVar8 + -1);\n          pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;\n          pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;\n          pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;\n        }" { (expression_statement "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar23->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar23->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar23->e_ident_magic_num" & (field_expression "pEVar23->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 "pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class;" (assignment_expression "pEVar25 = *(Elf32_Ehdr **)&pEVar6->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar6->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar6->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)&pEVar23->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar23->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar23->e_ident_class" & (field_expression "pEVar23->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class;" (assignment_expression "pEVar6 = (Elf32_Ehdr *)&pEVar6->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar6->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar6->e_ident_class" & (field_expression "pEVar6->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 "pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4);" (assignment_expression "pEVar4 = (Elf32_Ehdr *)((int)pEVar4 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar4 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar4 * 4 + -4)" ( (binary_expression "(int)pEVar4 * 4 + -4" (binary_expression "(int)pEVar4 * 4" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))\n        ;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2))" ( (binary_expression "pEVar4->e_ident_magic_str + (int)(pEVar27->e_ident_magic_str + -2)" (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar27->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar27->e_ident_magic_str + -2)" ( (binary_expression "pEVar27->e_ident_magic_str + -2" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num = pEVar25" (pointer_expression "*(Elf32_Ehdr **)&pEVar27->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar27->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar27->e_ident_magic_num" & (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier)))) = identifier) ;) (expression_statement "unaff_s0 = pEVar4;" (assignment_expression "unaff_s0 = pEVar4" identifier = identifier) ;) })) }) (else_clause "else {\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = pEVar4;\n    if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }\n  }" { (expression_statement "unaff_s0 = pEVar4;" (assignment_expression "unaff_s0 = pEVar4" identifier = identifier) ;) (if_statement "if (pEVar4 != (Elf32_Ehdr *)0x0) {\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }" if (parenthesized_expression "(pEVar4 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar4 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      b = (mpz_srcptr)m->_mp_d;\n      pEVar25 = (Elf32_Ehdr *)b;\n      pEVar27 = unaff_s5;\n      pEVar38 = pEVar4;\n      iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar4;\n      if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;\n      r->_mp_size = (int)pEVar4;\n      goto LAB_000301b4;\n    }" { (expression_statement "b = (mpz_srcptr)m->_mp_d;" (assignment_expression "b = (mpz_srcptr)m->_mp_d" identifier = (cast_expression "(mpz_srcptr)m->_mp_d" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "m->_mp_d" identifier -> field_identifier))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)b;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)b" identifier = (cast_expression "(Elf32_Ehdr *)b" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar27 = unaff_s5;" (assignment_expression "pEVar27 = unaff_s5" identifier = identifier) ;) (expression_statement "pEVar38 = pEVar4;" (assignment_expression "pEVar38 = pEVar4" identifier = identifier) ;) (expression_statement "iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);" (assignment_expression "iVar7 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }\n      else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;\n        in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;\n        pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n        pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n        do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }" { (labeled_statement "LAB_000303e0:\n        if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;" statement_identifier : (if_statement "if (((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)) goto LAB_00030390;" if (parenthesized_expression "(((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4))" ( (binary_expression "((Elf32_Ehdr *)b == unaff_s5) || ((int)pEVar9 <= (int)pEVar4)" (parenthesized_expression "((Elf32_Ehdr *)b == unaff_s5)" ( (binary_expression "(Elf32_Ehdr *)b == unaff_s5" (cast_expression "(Elf32_Ehdr *)b" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) || (parenthesized_expression "((int)pEVar9 <= (int)pEVar4)" ( (binary_expression "(int)pEVar9 <= (int)pEVar4" (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;))) (expression_statement "in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2;" (assignment_expression "in_t2 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2" identifier = (binary_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num + (int)in_t2" (pointer_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)b)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)b)" ( (cast_expression "(Elf32_Ehdr *)b" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;" (assignment_expression "pbVar15 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4" identifier = (binary_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4" (pointer_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)b)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)b)" ( (cast_expression "(Elf32_Ehdr *)b" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (binary_expression "(int)pEVar4 * 4" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;" (assignment_expression "pbVar14 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4" identifier = (binary_expression "&unaff_s5->e_ident_magic_num + (int)pEVar4 * 4" (pointer_expression "&unaff_s5->e_ident_magic_num" & (field_expression "unaff_s5->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar4 * 4" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != in_t2);" do (compound_statement "{\n          uVar41 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar41;\n          pbVar14 = pbVar14 + 4;\n        }" { (expression_statement "uVar41 = *(undefined4 *)pbVar15;" (assignment_expression "uVar41 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar41;" (assignment_expression "*(undefined4 *)pbVar14 = uVar41" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar15 != in_t2)" ( (binary_expression "pbVar15 != in_t2" identifier != identifier) )) ;) (expression_statement "iVar36 = *(int *)pwVar8;" (assignment_expression "iVar36 = *(int *)pwVar8" identifier = (pointer_expression "*(int *)pwVar8" * (cast_expression "(int *)pwVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "unaff_s0 = pEVar4;" (assignment_expression "unaff_s0 = pEVar4" identifier = identifier) ;) }) (else_clause "else {\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }" else (compound_statement "{\n        if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar36 = *(int *)pwVar8;\n        unaff_s0 = pEVar4;\n      }" { (if_statement "if ((int)pEVar4 < (int)pEVar9) {\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }" if (parenthesized_expression "((int)pEVar4 < (int)pEVar9)" ( (binary_expression "(int)pEVar4 < (int)pEVar9" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;\n          pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;\n          iVar7 = *(int *)pbVar14;\n          pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }\n          goto LAB_000303e0;\n        }" { (expression_statement "pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4;" (assignment_expression "pbVar14 = &((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4" identifier = (binary_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num + (int)pEVar4 * 4" (pointer_expression "&((Elf32_Ehdr *)b)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)b)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)b)" ( (cast_expression "(Elf32_Ehdr *)b" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (binary_expression "(int)pEVar4 * 4" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4;" (assignment_expression "pbVar15 = &unaff_s5->e_ident_magic_num + (int)pEVar4 * 4" identifier = (binary_expression "&unaff_s5->e_ident_magic_num + (int)pEVar4 * 4" (pointer_expression "&unaff_s5->e_ident_magic_num" & (field_expression "unaff_s5->e_ident_magic_num" identifier -> field_identifier)) + (binary_expression "(int)pEVar4 * 4" (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "iVar7 = *(int *)pbVar14;" (assignment_expression "iVar7 = *(int *)pbVar14" identifier = (pointer_expression "*(int *)pbVar14" * (cast_expression "(int *)pbVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(iVar7 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar7 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -1)" ( (binary_expression "iVar7 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar25" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (while_statement "while (pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }" while (parenthesized_expression "(pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0)" ( (comma_expression "pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str, iVar7 == 0" (assignment_expression "pEVar4 = (Elf32_Ehdr *)pEVar4->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar4->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar4->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "iVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n            pbVar15 = pbVar15 + 4;\n            if (pEVar9 == pEVar4) goto LAB_00030390;\n            iVar7 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar25;\n          }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar9 == pEVar4) goto LAB_00030390;" if (parenthesized_expression "(pEVar9 == pEVar4)" ( (binary_expression "pEVar9 == pEVar4" identifier == identifier) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(pbVar14 + 4);" (assignment_expression "iVar7 = *(int *)(pbVar14 + 4)" identifier = (pointer_expression "*(int *)(pbVar14 + 4)" * (cast_expression "(int *)(pbVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar25 = (Elf32_Ehdr *)(iVar7 + -1);" (assignment_expression "pEVar25 = (Elf32_Ehdr *)(iVar7 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar7 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -1)" ( (binary_expression "iVar7 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar25;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar25" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000303e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00030390:\n        iVar36 = *(int *)pwVar8;" statement_identifier : (expression_statement "iVar36 = *(int *)pwVar8;" (assignment_expression "iVar36 = *(int *)pwVar8" identifier = (pointer_expression "*(int *)pwVar8" * (cast_expression "(int *)pwVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "unaff_s0 = pEVar4;" (assignment_expression "unaff_s0 = pEVar4" identifier = identifier) ;) }))) (while_statement "while (pEVar4 = pEVar16, iVar36 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" while (parenthesized_expression "(pEVar4 = pEVar16, iVar36 == 0)" ( (comma_expression "pEVar4 = pEVar16, iVar36 == 0" (assignment_expression "pEVar4 = pEVar16" identifier = identifier) , (binary_expression "iVar36 == 0" identifier == number_literal)) )) (compound_statement "{\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar4[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar4[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar4[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar4[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar4[-1].e_shstrndx" & (field_expression "pEVar4[-1].e_shstrndx" (subscript_expression "pEVar4[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030250;" goto statement_identifier ;)) (expression_statement "iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum;" (assignment_expression "iVar36._0_2_ = in_t1[-0xffffffff00000001].e_phnum" (field_expression "iVar36._0_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_phnum" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;" (assignment_expression "iVar36._2_2_ = in_t1[-0xffffffff00000001].e_shentsize" (field_expression "iVar36._2_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_shentsize" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;" (assignment_expression "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&in_t1[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in_t1[-1].e_shnum" & (field_expression "in_t1[-1].e_shnum" (subscript_expression "in_t1[-1]" identifier [ number_literal ]) . field_identifier)))) ;) })) (expression_statement "pEVar16 = pEVar4;" (assignment_expression "pEVar16 = pEVar4" identifier = identifier) ;) (if_statement "if (r->_mp_alloc < (int)pEVar4) goto LAB_00030268;" if (parenthesized_expression "(r->_mp_alloc < (int)pEVar4)" ( (binary_expression "r->_mp_alloc < (int)pEVar4" (field_expression "r->_mp_alloc" identifier -> field_identifier) < (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00030268;" goto statement_identifier ;)) (expression_statement "r->_mp_size = (int)pEVar4;" (assignment_expression "r->_mp_size = (int)pEVar4" (field_expression "r->_mp_size" identifier -> field_identifier) = (cast_expression "(int)pEVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000301b4;" goto statement_identifier ;) })) (labeled_statement "LAB_00030250:\n    if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }" statement_identifier : (if_statement "if (r->_mp_alloc < 0) {\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }\n    else {\n      r->_mp_size = 0;\n    }" if (parenthesized_expression "(r->_mp_alloc < 0)" ( (binary_expression "r->_mp_alloc < 0" (field_expression "r->_mp_alloc" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n      pEVar25 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(r);\n      r->_mp_size = 0;\n    }" { (expression_statement "pEVar25 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar25 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(r);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(r)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(r)" ( identifier ))) ;) (expression_statement "r->_mp_size = 0;" (assignment_expression "r->_mp_size = 0" (field_expression "r->_mp_size" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n      r->_mp_size = 0;\n    }" else (compound_statement "{\n      r->_mp_size = 0;\n    }" { (expression_statement "r->_mp_size = 0;" (assignment_expression "r->_mp_size = 0" (field_expression "r->_mp_size" identifier -> field_identifier) = number_literal) ;) })))) }))) (expression_statement "pEVar4 = (Elf32_Ehdr *)__tmp_marker;" (assignment_expression "pEVar4 = (Elf32_Ehdr *)__tmp_marker" identifier = (cast_expression "(Elf32_Ehdr *)__tmp_marker" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "e = (mpz_srcptr)pEVar27;" (assignment_expression "e = (mpz_srcptr)pEVar27" identifier = (cast_expression "(mpz_srcptr)pEVar27" ( (type_descriptor "mpz_srcptr" type_identifier) ) identifier)) ;) (expression_statement "puVar48 = puVar45;" (assignment_expression "puVar48 = puVar45" identifier = identifier) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    e = (mpz_srcptr)pEVar27;\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_00097614)();\n    e = (mpz_srcptr)pEVar27;\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "e = (mpz_srcptr)pEVar27;" (assignment_expression "e = (mpz_srcptr)pEVar27" identifier = (cast_expression "(mpz_srcptr)pEVar27" ( (type_descriptor "mpz_srcptr" type_identifier) ) identifier)) ;) })) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) (labeled_statement "LAB_00031bcc:\n  iVar36 = iVar36 + -1;" statement_identifier : (expression_statement "iVar36 = iVar36 + -1;" (assignment_expression "iVar36 = iVar36 + -1" identifier = (binary_expression "iVar36 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar36 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar36 == -1)" ( (binary_expression "iVar36 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar17 = *puVar22;" (assignment_expression "uVar17 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (if_statement "if (uVar17 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "puVar22 = puVar22 + -1;" (assignment_expression "puVar22 = puVar22 + -1" identifier = (binary_expression "puVar22 + -1" identifier + number_literal)) ;) (if_statement "if (uVar5 % uVar17 == 0) {\n    pEVar27 = pEVar9;\n    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar5 % uVar17 == 0)" ( (binary_expression "uVar5 % uVar17 == 0" (binary_expression "uVar5 % uVar17" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar27 = pEVar9;\n    iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);\n    iVar36 = *(int *)(puVar48 + -0x90);\n    if (iVar7 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar27 = pEVar9;" (assignment_expression "pEVar27 = pEVar9" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19);" (assignment_expression "iVar7 = (**(code **)(iVar7 + -0x7b80))(puVar19)" identifier = (call_expression "(**(code **)(iVar7 + -0x7b80))(puVar19)" (parenthesized_expression "(**(code **)(iVar7 + -0x7b80))" ( (pointer_expression "**(code **)(iVar7 + -0x7b80)" * (pointer_expression "*(code **)(iVar7 + -0x7b80)" * (cast_expression "(code **)(iVar7 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7b80)" ( (binary_expression "iVar7 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier )))) ;) (expression_statement "iVar36 = *(int *)(puVar48 + -0x90);" (assignment_expression "iVar36 = *(int *)(puVar48 + -0x90)" identifier = (pointer_expression "*(int *)(puVar48 + -0x90)" * (cast_expression "(int *)(puVar48 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + -0x90)" ( (binary_expression "puVar48 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar27 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar7 = *(int *)(iVar36 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar36 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar36 + -0x7fd4)" * (cast_expression "(int *)(iVar36 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fd4)" ( (binary_expression "iVar36 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar36 + -0x7c20))(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar36 + -0x7c20))" ( (pointer_expression "**(code **)(iVar36 + -0x7c20)" * (pointer_expression "*(code **)(iVar36 + -0x7c20)" * (cast_expression "(code **)(iVar36 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7c20)" ( (binary_expression "iVar36 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar7,0x81,*(int *)(iVar36 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar36 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar36 + -0x7fd4)" * (cast_expression "(int *)(iVar36 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fd4)" ( (binary_expression "iVar36 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar50 = 1;" statement_identifier : (expression_statement "iVar50 = 1;" (assignment_expression "iVar50 = 1" identifier = number_literal) ;)) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = uVar55;" (assignment_expression "uVar5 = uVar55" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;" statement_identifier : (expression_statement "*(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55;" (assignment_expression "*(uint *)(puVar48 + iVar36 * 4 + -0x68) = uVar55" (pointer_expression "*(uint *)(puVar48 + iVar36 * 4 + -0x68)" * (cast_expression "(uint *)(puVar48 + iVar36 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar48 + iVar36 * 4 + -0x68)" ( (binary_expression "puVar48 + iVar36 * 4 + -0x68" (binary_expression "puVar48 + iVar36 * 4" identifier + (binary_expression "iVar36 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar17 = uVar55 + 2;" statement_identifier : (expression_statement "uVar17 = uVar55 + 2;" (assignment_expression "uVar17 = uVar55 + 2" identifier = (binary_expression "uVar55 + 2" identifier + number_literal)) ;)) (expression_statement "iVar34 = (uint)(uVar17 < uVar55) + iVar34;" (assignment_expression "iVar34 = (uint)(uVar17 < uVar55) + iVar34" identifier = (binary_expression "(uint)(uVar17 < uVar55) + iVar34" (call_expression "(uint)(uVar17 < uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar55)" ( (binary_expression "uVar17 < uVar55" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar55 = uVar17;" (assignment_expression "uVar55 = uVar17" identifier = identifier) ;) (expression_statement "iVar36 = iVar50;" (assignment_expression "iVar36 = iVar50" identifier = identifier) ;) (if_statement "if (uVar54 <= uVar17) goto LAB_00031a64;" if (parenthesized_expression "(uVar54 <= uVar17)" ( (binary_expression "uVar54 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit "int __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}\n\n" (function_definition "int __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" primitive_type (function_declarator "__gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" identifier (parameter_list "(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Elf32_Ehdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Elf32_Ehdr *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "Elf32_Ehdr *pEVar16;" type_identifier (pointer_declarator "*pEVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "Elf32_Ehdr *pEVar21;" type_identifier (pointer_declarator "*pEVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "Elf32_Ehdr *pEVar24;" type_identifier (pointer_declarator "*pEVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "Elf32_Ehdr *pEVar28;" type_identifier (pointer_declarator "*pEVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar30;" type_identifier (pointer_declarator "*pEVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar34;" type_identifier (pointer_declarator "*pEVar34" * identifier) ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "Elf32_Ehdr *in_t1;" type_identifier (pointer_declarator "*in_t1" * identifier) ;) (declaration "char *in_t2;" primitive_type (pointer_declarator "*in_t2" * identifier) ;) (declaration "Elf32_Ehdr *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined1 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "word *pwVar38;" type_identifier (pointer_declarator "*pwVar38" * identifier) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "Elf32_Ehdr *pEVar40;" type_identifier (pointer_declarator "*pEVar40" * identifier) ;) (declaration "Elf32_Ehdr *pEVar41;" type_identifier (pointer_declarator "*pEVar41" * identifier) ;) (declaration "Elf32_Ehdr *pEVar42;" type_identifier (pointer_declarator "*pEVar42" * identifier) ;) (declaration "int *piVar43;" primitive_type (pointer_declarator "*piVar43" * identifier) ;) (declaration "Elf32_Ehdr *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 uVar44;" type_identifier identifier ;) (declaration "undefined *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "code *pcVar46;" type_identifier (pointer_declarator "*pcVar46" * identifier) ;) (declaration "undefined1 *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "undefined1 *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "undefined1 *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "code *pcVar51;" type_identifier (pointer_declarator "*pcVar51" * identifier) ;) (declaration "code *pcVar52;" type_identifier (pointer_declarator "*pcVar52" * identifier) ;) (declaration "uint uVar53;" type_identifier identifier ;) (declaration "uint uVar54;" type_identifier identifier ;) (declaration "uint uVar55;" type_identifier identifier ;) (declaration "undefined8 uVar56;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [32];" type_identifier (array_declarator "auStack_68 [32]" identifier [ number_literal ]) ;) (declaration "Elf32_Ehdr *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00097540" identifier = identifier) ;) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" identifier = identifier) ;) (expression_statement "puVar47 = auStack_68;" (assignment_expression "puVar47 = auStack_68" identifier = identifier) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(param_4 + 4)" * (cast_expression "(Elf32_Ehdr **)(param_4 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" * (cast_expression "(int *)PTR___stack_chk_guard_00097540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar10 = (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)))) ;) (if_statement "if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }" if (parenthesized_expression "(-1 < (int)pEVar5)" ( (binary_expression "-1 < (int)pEVar5" number_literal < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pEVar10 = pEVar5;\n  }" { (expression_statement "pEVar10 = pEVar5;" (assignment_expression "pEVar10 = pEVar5" identifier = identifier) ;) })) (expression_statement "pEVar40 = param_3;" (assignment_expression "pEVar40 = param_3" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;" 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)) )) (goto_statement "goto LAB_00030070;" goto statement_identifier ;)) (do_statement "do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  }" { (do_statement "do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    }" { (expression_statement "(*(code *)PTR___gmp_divide_by_zero_000975dc)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_000975dc" * (cast_expression "(code *)PTR___gmp_divide_by_zero_000975dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);" statement_identifier : (expression_statement "puVar19 = *(uint **)(param_4 + 8);" (assignment_expression "puVar19 = *(uint **)(param_4 + 8)" identifier = (pointer_expression "*(uint **)(param_4 + 8)" * (cast_expression "(uint **)(param_4 + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar6 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )))) ;) }) while (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)) )) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) (if_statement "if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" if (parenthesized_expression "(0 < (int)pEVar27)" ( (binary_expression "0 < (int)pEVar27" number_literal < (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" { (expression_statement "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&param_2->e_ident_class" & (field_expression "param_2->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar30 = pEVar7;" (assignment_expression "pEVar30 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" { (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) })) (expression_statement "iVar37 = (int)pEVar27 << 5;" (assignment_expression "iVar37 = (int)pEVar27 << 5" identifier = (binary_expression "(int)pEVar27 << 5" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "local_30 = (Elf32_Ehdr *)0x0;" (assignment_expression "local_30 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" identifier = (call_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_itch_00097538" * (cast_expression "(code *)PTR___gmpn_sec_powm_itch_00097538" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar30,iVar37,pEVar10)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;" (assignment_expression "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" identifier = (binary_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" (cast_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar10->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar10->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar10->e_ident_magic_str + iVar8" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) ))) * number_literal)) ;) (if_statement "if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar47 = auStack_68 + iVar8;" (assignment_expression "puVar47 = auStack_68 + iVar8" identifier = (binary_expression "auStack_68 + iVar8" identifier + identifier)) ;) (expression_statement "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" identifier = (cast_expression "(Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb8 + iVar8)" ( (binary_expression "&stack0xffffffb8 + iVar8" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) }) (else_clause "else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" else (compound_statement "{\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" { (expression_statement "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "in_t2 = (char *)((int)pEVar10 * 4);" (assignment_expression "in_t2 = (char *)((int)pEVar10 * 4)" identifier = (cast_expression "(char *)((int)pEVar10 * 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 * 4)" ( (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;" (assignment_expression "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_abiversion" & (field_expression "pEVar40->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion" identifier = (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_abiversion" * (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_abiversion" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&param_2->e_ident_abiversion" & (field_expression "param_2->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x1c)" ( (binary_expression "puVar47 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x18)" ( (binary_expression "puVar47 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar47 + 0x14) = puVar19;" (assignment_expression "*(uint **)(puVar47 + 0x14) = puVar19" (pointer_expression "*(uint **)(puVar47 + 0x14)" * (cast_expression "(uint **)(puVar47 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x14)" ( (binary_expression "puVar47 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar47 + 0x10) = iVar37;" (assignment_expression "*(int *)(puVar47 + 0x10) = iVar37" (pointer_expression "*(int *)(puVar47 + 0x10)" * (cast_expression "(int *)(puVar47 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x10)" ( (binary_expression "puVar47 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar40 = in_t3;" (assignment_expression "pEVar40 = in_t3" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);" (call_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)" ( (pointer_expression "*(code *)PTR___gmpn_sec_powm_000972d0" * (cast_expression "(code *)PTR___gmpn_sec_powm_000972d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;) (expression_statement "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);" (assignment_expression "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" identifier = (binary_expression "in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" identifier + (cast_expression "(int)(unaff_s5->e_ident_magic_str + -5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + -5)" ( (binary_expression "unaff_s5->e_ident_magic_str + -5" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)pcVar18;" (assignment_expression "iVar8 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar7 = in_t1;" (assignment_expression "pEVar7 = in_t1" identifier = identifier) ;) (expression_statement "pEVar5 = pEVar10;" (assignment_expression "pEVar5 = pEVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) })) }) while (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)) )) ;) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = (uint)(uVar6 != 1);\n  }" { (expression_statement "uVar6 = (uint)(uVar6 != 1);" (assignment_expression "uVar6 = (uint)(uVar6 != 1)" identifier = (call_expression "(uint)(uVar6 != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )))) ;) }) (else_clause "else {\n    uVar6 = 1;\n  }" else (compound_statement "{\n    uVar6 = 1;\n  }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) }))) (expression_statement "param_1[1] = uVar6;" (assignment_expression "param_1[1] = uVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)param_1[2] = 1;" (assignment_expression "*(undefined4 *)param_1[2] = 1" (pointer_expression "*(undefined4 *)param_1[2]" * (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) = number_literal) ;) (labeled_statement "LAB_00030200:\n  iVar8 = *(int *)puVar4;" statement_identifier : (expression_statement "iVar8 = *(int *)puVar4;" (assignment_expression "iVar8 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (if_statement "if (local_2c == iVar8) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c == iVar8)" ( (binary_expression "local_2c == iVar8" identifier == identifier) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (expression_statement "pcVar51 = FUN_00030430;" (assignment_expression "pcVar51 = FUN_00030430" identifier = identifier) ;) (expression_statement "puVar45 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar45 = PTR___stack_chk_fail_000974d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" * (cast_expression "(code *)PTR___stack_chk_fail_000974d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined **)(puVar9 + -0x24) = puVar4;" (assignment_expression "*(undefined **)(puVar9 + -0x24) = puVar4" (pointer_expression "*(undefined **)(puVar9 + -0x24)" * (cast_expression "(undefined **)(puVar9 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar39 = *(int **)(puVar45 + 0x67110);" (assignment_expression "piVar39 = *(int **)(puVar45 + 0x67110)" identifier = (pointer_expression "*(int **)(puVar45 + 0x67110)" * (cast_expression "(int **)(puVar45 + 0x67110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x67110)" ( (binary_expression "puVar45 + 0x67110" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined4 **)(puVar9 + 0x10);" (assignment_expression "puVar35 = *(undefined4 **)(puVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0x10)" * (cast_expression "(undefined4 **)(puVar9 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x10)" ( (binary_expression "puVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;" (assignment_expression "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10" (pointer_expression "*(undefined **)(puVar9 + -0x38)" * (cast_expression "(undefined **)(puVar9 + -0x38)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) = (binary_expression "puVar45 + 0x6ec10" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x1c) = param_4;" (assignment_expression "*(int *)(puVar9 + -0x1c) = param_4" (pointer_expression "*(int *)(puVar9 + -0x1c)" * (cast_expression "(int *)(puVar9 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x20)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x20)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -4) = pcVar51;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar51" (pointer_expression "*(code **)(puVar9 + -4)" * (cast_expression "(code **)(puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar9 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar9 + -8)" * (cast_expression "(undefined1 **)(puVar9 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar9 + -0xc) = param_1" (pointer_expression "*(int **)(puVar9 + -0xc)" * (cast_expression "(int **)(puVar9 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x28)" ( (binary_expression "puVar9 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x30)" * (cast_expression "(undefined4 *)(puVar9 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar44 = *(undefined4 *)(puVar9 + 0x14);" (assignment_expression "uVar44 = *(undefined4 *)(puVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(puVar9 + 0x14)" * (cast_expression "(undefined4 *)(puVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x14)" ( (binary_expression "puVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" identifier = identifier) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }" { (expression_statement "pEVar7 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66e78);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66e78)" identifier = (pointer_expression "*(code **)(puVar45 + 0x66e78)" * (cast_expression "(code **)(puVar45 + 0x66e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66e78)" ( (binary_expression "puVar45 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" * (cast_expression "(undefined4 *)(puVar9 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar11 = (*pcVar51)(uVar44);" (assignment_expression "uVar11 = (*pcVar51)(uVar44)" identifier = (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar11 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x18)" ( (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 8)" ( (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" statement_identifier : (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) ))))) ;)) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) ;) (expression_statement "pEVar40 = unaff_s0;" (assignment_expression "pEVar40 = unaff_s0" identifier = identifier) ;) (expression_statement "puVar49 = puVar36;" (assignment_expression "puVar49 = puVar36" identifier = identifier) ;) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" if (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" { (labeled_statement "LAB_00030534:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" else (compound_statement "{\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" { (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" identifier = identifier) ;) (expression_statement "unaff_s0 = pEVar40;" (assignment_expression "unaff_s0 = pEVar40" identifier = identifier) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x2" identifier == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar22 = *(undefined4 *)param_3;" (assignment_expression "uVar22 = *(undefined4 *)param_3" identifier = (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar11 = *(undefined4 *)&param_3->e_ident_class;" (assignment_expression "uVar11 = *(undefined4 *)&param_3->e_ident_class" identifier = (pointer_expression "*(undefined4 *)&param_3->e_ident_class" * (cast_expression "(undefined4 *)&param_3->e_ident_class" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_3->e_ident_class" & (field_expression "param_3->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66f54);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66f54)" identifier = (pointer_expression "*(code **)(puVar45 + 0x66f54)" * (cast_expression "(code **)(puVar45 + 0x66f54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66f54)" ( (binary_expression "puVar45 + 0x66f54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = *puVar35" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" * (cast_expression "(undefined4 *)(puVar9 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x40)" ( (binary_expression "puVar9 + -0x40" identifier + number_literal) )))) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar22;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar22" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" * (cast_expression "(undefined4 *)(puVar9 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" * (cast_expression "(undefined4 *)(puVar9 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" if (parenthesized_expression "(((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28))" ( (binary_expression "((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)" (parenthesized_expression "((int)pEVar40 < 0x28)" ( (binary_expression "(int)pEVar40 < 0x28" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)pEVar27 - (int)pEVar40 < 0x28)" ( (binary_expression "(int)pEVar27 - (int)pEVar40 < 0x28" (binary_expression "(int)pEVar27 - (int)pEVar40" (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) ))) )) (compound_statement "{\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" { (expression_statement "uVar11 = *puVar35;" (assignment_expression "uVar11 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6700c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6700c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6700c)" * (cast_expression "(code **)(puVar45 + 0x6700c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6700c)" ( (binary_expression "puVar45 + 0x6700c" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" * (cast_expression "(undefined4 *)(puVar9 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" identifier = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (if_statement "if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" if (parenthesized_expression "((int)pEVar40 < 200)" ( (binary_expression "(int)pEVar40 < 200" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }" { (labeled_statement "LAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);" statement_identifier : (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6709c)" * (cast_expression "(code **)(puVar45 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6709c)" ( (binary_expression "puVar45 + 0x6709c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" { (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" identifier = (pointer_expression "*(code **)(puVar45 + 0x6709c)" * (cast_expression "(code **)(puVar45 + 0x6709c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x6709c)" ( (binary_expression "puVar45 + 0x6709c" identifier + number_literal) ))))) ;) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" identifier = identifier) ;) (if_statement "if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" if (parenthesized_expression "(3999 < (int)pEVar27)" ( (binary_expression "3999 < (int)pEVar27" number_literal < (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" { (expression_statement "puVar49 = (undefined1 *)((int)pEVar40 * 4);" (assignment_expression "puVar49 = (undefined1 *)((int)pEVar40 * 4)" identifier = (cast_expression "(undefined1 *)((int)pEVar40 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar40 * 4)" ( (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" if (parenthesized_expression "((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27)" ( (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (cast_expression "(double)(int)pEVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" * (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" ( (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a70" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" * (cast_expression "(int *)(puVar45 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x66c3c)" ( (binary_expression "puVar45 + 0x66c3c" identifier + number_literal) )))) + number_literal) ))))) + (binary_expression "(double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (cast_expression "(double)(int)pEVar27" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)) * (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" * (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" ( (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a68" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" * (cast_expression "(int *)(puVar45 + 0x66c3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + 0x66c3c)" ( (binary_expression "puVar45 + 0x66c3c" identifier + number_literal) )))) + number_literal) )))))) <= (binary_expression "(double)(int)pEVar40 * (double)(int)pEVar27" (cast_expression "(double)(int)pEVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) * (cast_expression "(double)(int)pEVar27" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pEVar27" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" { (expression_statement "param_1 = (int *)(puVar9 + -0x30);" (assignment_expression "param_1 = (int *)(puVar9 + -0x30)" identifier = (cast_expression "(int *)(puVar9 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) )))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" (parenthesized_expression "(**(code **)(puVar45 + 0x66ec0))" ( (pointer_expression "**(code **)(puVar45 + 0x66ec0)" * (pointer_expression "*(code **)(puVar45 + 0x66ec0)" * (cast_expression "(code **)(puVar45 + 0x66ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar45 + 0x66ec0)" ( (binary_expression "puVar45 + 0x66ec0" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar49)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" identifier = (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7e7c)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7e7c" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pEVar27,pEVar40,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);" (assignment_expression "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" identifier = (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7d50)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7d50" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,iVar8 << 2)" ( identifier , (binary_expression "iVar8 << 2" identifier << number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" * (cast_expression "(undefined4 *)(puVar9 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x40)" ( (binary_expression "puVar9 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1)" identifier = (cast_expression "(word *)((int)&pEVar40[-1].e_shstrndx + 1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar7 = pEVar10;" (assignment_expression "pEVar7 = pEVar10" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);" (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))" ( (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" * (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" * (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7ccc)" ( (binary_expression "*(int *)(puVar9 + -0x38) + -0x7ccc" (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar11._0_1_ = pEVar10->e_ident_magic_num;" (assignment_expression "uVar11._0_1_ = pEVar10->e_ident_magic_num" (field_expression "uVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar10->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar11._1_1_ = pEVar10->e_ident_magic_str[0];" (assignment_expression "uVar11._1_1_ = pEVar10->e_ident_magic_str[0]" (field_expression "uVar11._1_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar11._2_1_ = pEVar10->e_ident_magic_str[1];" (assignment_expression "uVar11._2_1_ = pEVar10->e_ident_magic_str[1]" (field_expression "uVar11._2_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar11._3_1_ = pEVar10->e_ident_magic_str[2];" (assignment_expression "uVar11._3_1_ = pEVar10->e_ident_magic_str[2]" (field_expression "uVar11._3_1_" identifier . field_identifier) = (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar24 = pEVar5;" (assignment_expression "pEVar24 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar42 = pEVar10;" (assignment_expression "pEVar42 = pEVar10" identifier = identifier) ;) (do_statement "do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);" do (compound_statement "{\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          }" { (expression_statement "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar24->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar11 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x18)" ( (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar24->e_ident_magic_str[0]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar24->e_ident_magic_str[1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar11 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar11 >> 8)" ( (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar24->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar24->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar24->e_ident_magic_str[2]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pwVar38 = (word *)((int)pwVar38 + -1);" (assignment_expression "pwVar38 = (word *)((int)pwVar38 + -1)" identifier = (cast_expression "(word *)((int)pwVar38 + -1)" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar38 + -1)" ( (binary_expression "(int)pwVar38 + -1" (cast_expression "(int)pwVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar11._0_1_ = pEVar42->e_ident_class;" (assignment_expression "uVar11._0_1_ = pEVar42->e_ident_class" (field_expression "uVar11._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar11._1_1_ = pEVar42->e_ident_data;" (assignment_expression "uVar11._1_1_ = pEVar42->e_ident_data" (field_expression "uVar11._1_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar11._2_1_ = pEVar42->e_ident_version;" (assignment_expression "uVar11._2_1_ = pEVar42->e_ident_version" (field_expression "uVar11._2_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar11._3_1_ = pEVar42->e_ident_osabi;" (assignment_expression "uVar11._3_1_ = pEVar42->e_ident_osabi" (field_expression "uVar11._3_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar24->e_ident_class" & (field_expression "pEVar24->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar42->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pwVar38 != (word *)0x0)" ( (binary_expression "pwVar38 != (word *)0x0" identifier != (cast_expression "(word *)0x0" ( (type_descriptor "word *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10)" (field_expression "pEVar5[-0xffffffff00000001].e_shnum" (subscript_expression "pEVar5[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar11 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar11 >> 0x10)" ( (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;" (assignment_expression "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11" (field_expression "pEVar5[-0xffffffff00000001].e_shstrndx" (subscript_expression "pEVar5[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "unaff_s0 = (Elf32_Ehdr *)0x0;" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar36 = puVar49;" (assignment_expression "puVar36 = puVar49" identifier = identifier) ;) (goto_statement "goto LAB_0003056c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00030504;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 **)(puVar9 + -0x44) = puVar35;" (assignment_expression "*(undefined4 **)(puVar9 + -0x44) = puVar35" (pointer_expression "*(undefined4 **)(puVar9 + -0x44)" * (cast_expression "(undefined4 **)(puVar9 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" identifier = identifier) ;) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x30)" ( (binary_expression "puVar9 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" identifier = (pointer_expression "*(int *)(puVar9 + -0x38)" * (cast_expression "(int *)(puVar9 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x38)" ( (binary_expression "puVar9 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" if (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" { (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030534;" goto statement_identifier ;) })) }))) (if_statement "if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }" if (parenthesized_expression "(*(int *)(puVar9 + -0x2c) == *piVar39)" ( (binary_expression "*(int *)(puVar9 + -0x2c) == *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n    return *piVar39;\n  }" { (return_statement "return *piVar39;" return (pointer_expression "*piVar39" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7b70)" * (cast_expression "(code **)(iVar8 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b70)" ( (binary_expression "iVar8 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = FUN_000306c8;" (assignment_expression "pcVar52 = FUN_000306c8" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6e978;" (assignment_expression "pcVar46 = pcVar51 + 0x6e978" identifier = (binary_expression "pcVar51 + 0x6e978" identifier + number_literal)) ;) (expression_statement "puVar36 = puVar9 + -0xb0;" (assignment_expression "puVar36 = puVar9 + -0xb0" identifier = (binary_expression "puVar9 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x70)" ( (binary_expression "puVar9 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x68)" ( (binary_expression "puVar9 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar16 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 4)" ( (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar51 + 0x66e78)" * (cast_expression "(Elf32_Ehdr **)(pcVar51 + 0x66e78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66e78)" ( (binary_expression "pcVar51 + 0x66e78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar9 + -0x60) = puVar49;" (assignment_expression "*(undefined1 **)(puVar9 + -0x60) = puVar49" (pointer_expression "*(undefined1 **)(puVar9 + -0x60)" * (cast_expression "(undefined1 **)(puVar9 + -0x60)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x60)" ( (binary_expression "puVar9 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -100) = param_1;" (assignment_expression "*(int **)(puVar9 + -100) = param_1" (pointer_expression "*(int **)(puVar9 + -100)" * (cast_expression "(int **)(puVar9 + -100)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -100)" ( (binary_expression "puVar9 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x6c) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0x6c) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0x6c)" * (cast_expression "(undefined4 *)(puVar9 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x6c)" ( (binary_expression "puVar9 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x74)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x74)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x74)" ( (binary_expression "puVar9 + -0x74" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x78)" ( (binary_expression "puVar9 + -0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x80)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x80)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0x5c) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -0x5c) = pcVar52" (pointer_expression "*(code **)(puVar9 + -0x5c)" * (cast_expression "(code **)(puVar9 + -0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x5c)" ( (binary_expression "puVar9 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x7c) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x7c) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x7c)" * (cast_expression "(int **)(puVar9 + -0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0x98) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0x98) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0x98)" * (cast_expression "(code **)(puVar9 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x88) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x88)" * (cast_expression "(undefined4 *)(puVar9 + -0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x48)" ( (binary_expression "puVar9 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x44)" ( (binary_expression "puVar9 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;" (assignment_expression "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42" (pointer_expression "*(undefined4 *)(puVar9 + -0x84)" * (cast_expression "(undefined4 *)(puVar9 + -0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pEVar42" * (cast_expression "(undefined4 *)pEVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" if (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x7f01)" ( (binary_expression "pEVar10 < (Elf32_Ehdr *)0x7f01" identifier < (cast_expression "(Elf32_Ehdr *)0x7f01" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }" { (expression_statement "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" identifier = (unary_expression "-((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" - (parenthesized_expression "((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" ( (binary_expression "(uint)&pEVar10->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar10->e_ident_osabi" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "pEVar10->e_ident_osabi" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "puVar36 = puVar9 + iVar8 + -0xb0;" (assignment_expression "puVar36 = puVar9 + iVar8 + -0xb0" identifier = (binary_expression "puVar9 + iVar8 + -0xb0" (binary_expression "puVar9 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar8 + -0x98)" ( (binary_expression "puVar9 + iVar8 + -0x98" (binary_expression "puVar9 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + 0x66c28);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + 0x66c28)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x66c28)" * (cast_expression "(code **)(pcVar51 + 0x66c28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66c28)" ( (binary_expression "pcVar51 + 0x66c28" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" identifier = (cast_expression "(Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar9 + -0x88,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar9 + -0x88,pEVar10)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) , identifier ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar9 + -0x98);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0x98)" identifier = (pointer_expression "*(code **)(puVar9 + -0x98)" * (cast_expression "(code **)(puVar9 + -0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;" (assignment_expression "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" identifier = (binary_expression "(int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" (cast_expression "(int)((int)pEVar16 + (1 - (int)pEVar40))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pEVar16 + (1 - (int)pEVar40))" ( (binary_expression "(int)pEVar16 + (1 - (int)pEVar40)" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)pEVar40)" ( (binary_expression "1 - (int)pEVar40" number_literal - (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7d50)" * (cast_expression "(code **)(pcVar46 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7d50)" ( (binary_expression "pcVar46 + -0x7d50" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar49 = puVar36 + iVar8 + 0x18;" (assignment_expression "puVar49 = puVar36 + iVar8 + 0x18" identifier = (binary_expression "puVar36 + iVar8 + 0x18" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar36 = puVar36 + iVar8;" (assignment_expression "puVar36 = puVar36 + iVar8" identifier = (binary_expression "puVar36 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" else (compound_statement "{\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" { (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);" (assignment_expression "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88)" identifier = (cast_expression "(undefined1 *)(*pcVar51)(puVar9 + -0x88)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar51)(puVar9 + -0x88)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x8c)" ( (binary_expression "puVar9 + -0x8c" identifier + number_literal) ))))) ;) }))) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" { (expression_statement "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar44._0_1_ = pEVar7->e_ident_magic_num;" (assignment_expression "uVar44._0_1_ = pEVar7->e_ident_magic_num" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar7->e_ident_magic_str[0];" (assignment_expression "uVar44._1_1_ = pEVar7->e_ident_magic_str[0]" (field_expression "uVar44._1_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._2_1_ = pEVar7->e_ident_magic_str[1];" (assignment_expression "uVar44._2_1_ = pEVar7->e_ident_magic_str[1]" (field_expression "uVar44._2_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar44._3_1_ = pEVar7->e_ident_magic_str[2];" (assignment_expression "uVar44._3_1_ = pEVar7->e_ident_magic_str[2]" (field_expression "uVar44._3_1_" identifier . field_identifier) = (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar41 = pEVar27;" (assignment_expression "pEVar41 = pEVar27" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar7;" (assignment_expression "pEVar28 = pEVar7" identifier = identifier) ;) (if_statement "if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" if (parenthesized_expression "(puVar20 == (undefined1 *)0x0)" ( (binary_expression "puVar20 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }" { (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar27->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 "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 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)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 "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 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)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 "pEVar27->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" identifier = identifier) ;) }) (else_clause "else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" else (compound_statement "{\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" { (do_statement "do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);" do (compound_statement "{\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      }" { (expression_statement "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar41->e_ident_magic_str[0]" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar41->e_ident_magic_str[1]" (field_expression "pEVar41->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 "pEVar41->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar41->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar41->e_ident_magic_str[2]" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar44._0_1_ = pEVar28->e_ident_class;" (assignment_expression "uVar44._0_1_ = pEVar28->e_ident_class" (field_expression "uVar44._0_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar44._1_1_ = pEVar28->e_ident_data;" (assignment_expression "uVar44._1_1_ = pEVar28->e_ident_data" (field_expression "uVar44._1_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar44._2_1_ = pEVar28->e_ident_version;" (assignment_expression "uVar44._2_1_ = pEVar28->e_ident_version" (field_expression "uVar44._2_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar44._3_1_ = pEVar28->e_ident_osabi;" (assignment_expression "uVar44._3_1_ = pEVar28->e_ident_osabi" (field_expression "uVar44._3_1_" identifier . field_identifier) = (field_expression "pEVar28->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar41->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar41->e_ident_class" & (field_expression "pEVar41->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar28->e_ident_class" & (field_expression "pEVar28->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" ( (binary_expression "puVar20 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );" (assignment_expression "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" identifier = (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" ( (binary_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shentsize + 1" (cast_expression "(int)&pEVar10[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shentsize" & (field_expression "pEVar10[-1].e_shentsize" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)pEVar27->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier))) )))) ;) (expression_statement "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->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 "pEVar10->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar10->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) })) (expression_statement "*(undefined1 **)(puVar36 + 0x14) = puVar49;" (assignment_expression "*(undefined1 **)(puVar36 + 0x14) = puVar49" (pointer_expression "*(undefined1 **)(puVar36 + 0x14)" * (cast_expression "(undefined1 **)(puVar36 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x14)" ( (binary_expression "puVar36 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x10)" ( (binary_expression "puVar36 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar34 = pEVar40;" (assignment_expression "pEVar34 = pEVar40" identifier = identifier) ;) (expression_statement "FUN_00030430(pEVar27);" (call_expression "FUN_00030430(pEVar27)" identifier (argument_list "(pEVar27)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" identifier = (pointer_expression "*(int *)(puVar9 + -0x98)" * (cast_expression "(int *)(puVar9 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar40;" (assignment_expression "pEVar41 = pEVar40" identifier = identifier) ;) (if_statement "if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" if (parenthesized_expression "(pEVar40 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" { (expression_statement "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar27;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar27" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar27" * (cast_expression "(Elf32_Ehdr **)pEVar27" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar21 = pEVar24;" (assignment_expression "pEVar21 = pEVar24" identifier = identifier) ;) (expression_statement "pEVar3 = pEVar27;" (assignment_expression "pEVar3 = pEVar27" identifier = identifier) ;) (if_statement "if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" ( (binary_expression "puVar49 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);" do (compound_statement "{\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      }" { (expression_statement "*(Elf32_Ehdr **)pEVar21 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar21 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar21" * (cast_expression "(Elf32_Ehdr **)pEVar21" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar49 = puVar49 + -1;" (assignment_expression "puVar49 = puVar49 + -1" identifier = (binary_expression "puVar49 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar3->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar3->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar3->e_ident_class" & (field_expression "pEVar3->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;" (assignment_expression "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar21->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar21->e_ident_class" & (field_expression "pEVar21->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar3->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar3->e_ident_class" & (field_expression "pEVar3->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" ( (binary_expression "puVar49 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar40 * 4 + -4)" ( (binary_expression "(int)pEVar40 * 4 + -4" (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar40[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar40[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar40[-1].e_shstrndx" & (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar24" * (cast_expression "(Elf32_Ehdr **)pEVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (expression_statement "piVar39 = *(int **)(puVar9 + -0x88);" (assignment_expression "piVar39 = *(int **)(puVar9 + -0x88)" identifier = (pointer_expression "*(int **)(puVar9 + -0x88)" * (cast_expression "(int **)(puVar9 + -0x88)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x88)" ( (binary_expression "puVar9 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" { (expression_statement "(**(code **)(iVar8 + -0x7a2c))();" (call_expression "(**(code **)(iVar8 + -0x7a2c))()" (parenthesized_expression "(**(code **)(iVar8 + -0x7a2c))" ( (pointer_expression "**(code **)(iVar8 + -0x7a2c)" * (pointer_expression "*(code **)(iVar8 + -0x7a2c)" * (cast_expression "(code **)(iVar8 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7a2c)" ( (binary_expression "iVar8 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" identifier = (pointer_expression "*(int *)(puVar9 + -0x98)" * (cast_expression "(int *)(puVar9 + -0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x98)" ( (binary_expression "puVar9 + -0x98" identifier + number_literal) ))))) ;) })) (expression_statement "iVar50._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "iVar50._0_1_ = pEVar42->e_ident_magic_num" (field_expression "iVar50._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar50._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "iVar50._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "iVar50._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "iVar50._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "iVar50._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar50._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "iVar50._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "iVar50._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }" if (parenthesized_expression "(*(int *)(puVar9 + -0x84) == iVar50)" ( (binary_expression "*(int *)(puVar9 + -0x84) == iVar50" (pointer_expression "*(int *)(puVar9 + -0x84)" * (cast_expression "(int *)(puVar9 + -0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n    return iVar50;\n  }" { (return_statement "return iVar50;" return identifier ;) })) (expression_statement "pcVar46 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar46 = *(code **)(iVar8 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7b70)" * (cast_expression "(code **)(iVar8 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b70)" ( (binary_expression "iVar8 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_powm_ui;" (assignment_expression "pcVar52 = __gmpz_powm_ui" identifier = identifier) ;) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = pcVar46 + 0x6e770;" (assignment_expression "pcVar51 = pcVar46 + 0x6e770" identifier = (binary_expression "pcVar46 + 0x6e770" identifier + number_literal)) ;) (expression_statement "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);" (assignment_expression "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70)" identifier = (pointer_expression "*(undefined4 **)(pcVar46 + 0x66c70)" * (cast_expression "(undefined4 **)(pcVar46 + 0x66c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66c70)" ( (binary_expression "pcVar46 + 0x66c70" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "puVar48 = puVar36 + -0xa0;" (assignment_expression "puVar48 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;" (assignment_expression "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0" (pointer_expression "*(undefined1 **)(puVar36 + -8)" * (cast_expression "(undefined1 **)(puVar36 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -8)" ( (binary_expression "puVar36 + -8" identifier + number_literal) )))) = (binary_expression "puVar9 + -0xb0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x20)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x20)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x20)" ( (binary_expression "puVar36 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar36 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar36 + -4) = pcVar52" (pointer_expression "*(code **)(puVar36 + -4)" * (cast_expression "(code **)(puVar36 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -4)" ( (binary_expression "puVar36 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar36 + -0x58) = puVar35;" (assignment_expression "*(undefined4 **)(puVar36 + -0x58) = puVar35" (pointer_expression "*(undefined4 **)(puVar36 + -0x58)" * (cast_expression "(undefined4 **)(puVar36 + -0x58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0xc)" ( (binary_expression "puVar36 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x10)" ( (binary_expression "puVar36 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x14)" ( (binary_expression "puVar36 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x18)" ( (binary_expression "puVar36 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x1c)" ( (binary_expression "puVar36 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x24)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x24)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x24)" ( (binary_expression "puVar36 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x28)" ( (binary_expression "puVar36 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar36 + -0x88) = pcVar51;" (assignment_expression "*(code **)(puVar36 + -0x88) = pcVar51" (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar36 + -0x54) = piVar39;" (assignment_expression "*(int **)(puVar36 + -0x54) = piVar39" (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x5c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x68)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x68)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x68)" ( (binary_expression "puVar36 + -0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x2c) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar36 + -0x2c) = *puVar35" (pointer_expression "*(undefined4 *)(puVar36 + -0x2c)" * (cast_expression "(undefined4 *)(puVar36 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x2c)" ( (binary_expression "puVar36 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" identifier = identifier) ;) (if_statement "if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" if (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)0x14)" ( (binary_expression "pEVar30 < (Elf32_Ehdr *)0x14" identifier < (cast_expression "(Elf32_Ehdr *)0x14" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" { (expression_statement "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar34->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar34->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar34->e_ident_class" & (field_expression "pEVar34->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&pEVar34->e_ident_abiversion" * (cast_expression "(undefined4 *)&pEVar34->e_ident_abiversion" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar34->e_ident_abiversion" & (field_expression "pEVar34->e_ident_abiversion" identifier -> field_identifier))))) ;) (expression_statement "pEVar10 = pEVar7;" (assignment_expression "pEVar10 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" { (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }" { (expression_statement "pEVar7 = pEVar30;" (assignment_expression "pEVar7 = pEVar30" identifier = identifier) ;) (expression_statement "uVar56 = (**(code **)(pcVar46 + 0x66d0c))();" (assignment_expression "uVar56 = (**(code **)(pcVar46 + 0x66d0c))()" identifier = (call_expression "(**(code **)(pcVar46 + 0x66d0c))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x66d0c))" ( (pointer_expression "**(code **)(pcVar46 + 0x66d0c)" * (pointer_expression "*(code **)(pcVar46 + 0x66d0c)" * (cast_expression "(code **)(pcVar46 + 0x66d0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66d0c)" ( (binary_expression "pcVar46 + 0x66d0c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00031228:\n      uVar6 = (uint)uVar56;" statement_identifier : (expression_statement "uVar6 = (uint)uVar56;" (assignment_expression "uVar6 = (uint)uVar56" identifier = (cast_expression "(uint)uVar56" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" ( (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)((ulonglong)uVar56 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar56 >> 0x20)" ( (binary_expression "(ulonglong)uVar56 >> 0x20" (cast_expression "(ulonglong)uVar56" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" identifier = identifier) ;) }) (else_clause "else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" else (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 * 4)" ( (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\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        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" { (expression_statement "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);" (assignment_expression "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1)" identifier = (call_expression "(uint)(**(int **)(puVar36 + -0x4c) != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(puVar36 + -0x4c) != 1)" ( (binary_expression "**(int **)(puVar36 + -0x4c) != 1" (pointer_expression "**(int **)(puVar36 + -0x4c)" * (pointer_expression "*(int **)(puVar36 + -0x4c)" * (cast_expression "(int **)(puVar36 + -0x4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) != number_literal) )))) ;) })) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar39[1] = uVar6;" (assignment_expression "piVar39[1] = uVar6" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)piVar39[2] = 1;" (assignment_expression "*(undefined4 *)piVar39[2] = 1" (pointer_expression "*(undefined4 *)piVar39[2]" * (cast_expression "(undefined4 *)piVar39[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar36 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar36 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar36 + -0x40)" * (cast_expression "(undefined4 *)(puVar36 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;" (assignment_expression "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum" (pointer_expression "*(word **)(puVar36 + -0x50)" * (cast_expression "(word **)(puVar36 + -0x50)" ( (type_descriptor "word **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) = (pointer_expression "&pEVar27[-1].e_shnum" & (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" ( (binary_expression "*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (cast_expression "(int)&pEVar27[-1].e_shnum" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27[-1].e_shnum" & (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (if_statement "if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" if (parenthesized_expression "(pEVar28 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar28 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }" { (expression_statement "iVar8 = 0x20;" (assignment_expression "iVar8 = 0x20" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar8 = 0x18;\n        }" { (expression_statement "iVar8 = 0x18;" (assignment_expression "iVar8 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar37 = 9;" (assignment_expression "iVar37 = 9" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar37 = 1;\n        }" { (expression_statement "iVar37 = 1;" (assignment_expression "iVar37 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" { (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          iVar8 = 8;\n        }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) })) (expression_statement "iVar37 = 0x19;" (assignment_expression "iVar37 = 0x19" identifier = number_literal) ;) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }" if (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar28)" ( (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n          iVar37 = 0x11;\n        }" { (expression_statement "iVar37 = 0x11;" (assignment_expression "iVar37 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pcVar46 + 0x668bc)" * (cast_expression "(Elf32_Ehdr **)(pcVar46 + 0x668bc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x668bc)" ( (binary_expression "pcVar46 + 0x668bc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];" (assignment_expression "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" identifier = (binary_expression "iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" identifier - (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar28 >> iVar37) - 1" (parenthesized_expression "((uint)pEVar28 >> iVar37)" ( (binary_expression "(uint)pEVar28 >> iVar37" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) )) - number_literal) ]))))) ;) (expression_statement "*(int *)(puVar36 + -0x6c) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x6c) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x6c)" * (cast_expression "(int *)(puVar36 + -0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" identifier = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" { (if_statement "if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" if (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "puVar48 = puVar36 + iVar8 + -0xa0;" (assignment_expression "puVar48 = puVar36 + iVar8 + -0xa0" identifier = (binary_expression "puVar36 + iVar8 + -0xa0" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + iVar8 + -0x88)" ( (binary_expression "puVar36 + iVar8 + -0x88" (binary_expression "puVar36 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" else (compound_statement "{\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar46 + 0x66a20))" ( (pointer_expression "**(code **)(pcVar46 + 0x66a20)" * (pointer_expression "*(code **)(pcVar46 + 0x66a20)" * (cast_expression "(code **)(pcVar46 + 0x66a20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66a20)" ( (binary_expression "pcVar46 + 0x66a20" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );" (call_expression "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" ( identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" * (cast_expression "(undefined4 *)(puVar36 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x4c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" * (cast_expression "(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "puVar20 = puVar48;" (assignment_expression "puVar20 = puVar48" identifier = identifier) ;) })) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" if (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" ( (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" identifier == (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar34 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" else (compound_statement "{\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" { (expression_statement "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);" (assignment_expression "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" ( (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4" (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50)" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) ))))) ;) }))) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar28 >> 0x10)" ( (binary_expression "(uint)pEVar28 >> 0x10" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (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 "uVar54 = ~(uint)pEVar28 / (uint)pEVar7;" (assignment_expression "uVar54 = ~(uint)pEVar28 / (uint)pEVar7" identifier = (binary_expression "~(uint)pEVar28 / (uint)pEVar7" (unary_expression "~(uint)pEVar28" ~ (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) / (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "in_t2 = (char *)((uint)pEVar28 & 0xffff);" (assignment_expression "in_t2 = (char *)((uint)pEVar28 & 0xffff)" identifier = (cast_expression "(char *)((uint)pEVar28 & 0xffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar28 & 0xffff)" ( (binary_expression "(uint)pEVar28 & 0xffff" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);" (assignment_expression "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54)" identifier = (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar54)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar54)" ( (binary_expression "(int)in_t2 * uVar54" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" ( (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10" (binary_expression "~(uint)pEVar28 % (uint)pEVar7" (unary_expression "~(uint)pEVar28" ~ (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) % (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" identifier = identifier) ;) (expression_statement "in_t1 = pEVar34;" (assignment_expression "in_t1 = pEVar34" identifier = identifier) ;) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" identifier = identifier) ;) (if_statement "if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" if (parenthesized_expression "(pEVar42 < in_t3)" ( (binary_expression "pEVar42 < in_t3" identifier < identifier) )) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" ( (binary_expression "pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2)" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar42->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + -2)" ( (binary_expression "pEVar42->e_ident_magic_str + -2" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) (if_statement "if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;" if (parenthesized_expression "((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))" ( (binary_expression "(pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" (parenthesized_expression "(pEVar28 <= pEVar42)" ( (binary_expression "pEVar28 <= pEVar42" identifier <= identifier) )) && (parenthesized_expression "(uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" ( (comma_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3" (assignment_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2)" identifier = (call_expression "CONCAT44(pEVar42,uVar54 - 2)" identifier (argument_list "(pEVar42,uVar54 - 2)" ( identifier , (binary_expression "uVar54 - 2" identifier - number_literal) )))) , (binary_expression "pEVar42 < in_t3" identifier < identifier)) ))) )) (goto_statement "goto LAB_00031228;" goto statement_identifier ;)) })) }))) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" if (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 == (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 "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;" (assignment_expression "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" identifier = (binary_expression "(uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar42 - (int)in_t3)" ( (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" ( (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pEVar42 - (int)in_t3)" ( (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_t3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % (cast_expression "(uint)pEVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) | number_literal) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" ( (binary_expression "pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2)" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar28->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar28->e_ident_magic_str + -2)" ( (binary_expression "pEVar28->e_ident_magic_str + -2" (field_expression "pEVar28->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar54 = uVar55;" (assignment_expression "uVar54 = uVar55" identifier = identifier) ;) (if_statement "if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }" if (parenthesized_expression "((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       ))" ( (binary_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" (parenthesized_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55))" ( (binary_expression "pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)" identifier < (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) )) && (parenthesized_expression "((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" ( (parenthesized_expression "(pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))" ( (binary_expression "pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" (binary_expression "pEVar42 < pEVar28" identifier < identifier) || (parenthesized_expression "(uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" ( (comma_expression "uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (assignment_expression "uVar54 = uVar55 - 2" identifier = (binary_expression "uVar55 - 2" identifier - number_literal)) , (binary_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_t2 * uVar55)" ( (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) ))) <= identifier)) ))) )) ))) )) (compound_statement "{\n      uVar54 = uVar55 - 1;\n    }" { (expression_statement "uVar54 = uVar55 - 1;" (assignment_expression "uVar54 = uVar55 - 1" identifier = (binary_expression "uVar55 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar54 = uVar6 << 0x10 | uVar54;" (assignment_expression "uVar54 = uVar6 << 0x10 | uVar54" identifier = (binary_expression "uVar6 << 0x10 | uVar54" (binary_expression "uVar6 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" ( (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1" (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54" (field_expression "pEVar34->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar28 * uVar54" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) (if_statement "if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" if (parenthesized_expression "(pEVar7 < pEVar34)" ( (binary_expression "pEVar7 < pEVar34" identifier < identifier) )) (compound_statement "{\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" { (expression_statement "uVar6 = pEVar7 < pEVar28 ^ 1;" (assignment_expression "uVar6 = pEVar7 < pEVar28 ^ 1" identifier = (binary_expression "pEVar7 < pEVar28 ^ 1" (binary_expression "pEVar7 < pEVar28" identifier < identifier) ^ number_literal)) ;) (expression_statement "pEVar42 = pEVar28;" (assignment_expression "pEVar42 = pEVar28" identifier = identifier) ;) (if_statement "if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "uVar54 = (uVar54 - 1) - uVar6;" (assignment_expression "uVar54 = (uVar54 - 1) - uVar6" identifier = (binary_expression "(uVar54 - 1) - uVar6" (parenthesized_expression "(uVar54 - 1)" ( (binary_expression "uVar54 - 1" identifier - number_literal) )) - identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" ( (binary_expression "(int)pEVar7 + (-(int)pEVar42 - (int)pEVar28)" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar42 - (int)pEVar28)" ( (binary_expression "-(int)pEVar42 - (int)pEVar28" (unary_expression "-(int)pEVar42" - (cast_expression "(int)pEVar42" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" identifier = (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(in_t1)" identifier (argument_list "(in_t1)" ( identifier ))))) ;) })) (expression_statement "pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar42 = (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 "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" ( (binary_expression "pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2)" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(pEVar7->e_ident_magic_str + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar7->e_ident_magic_str + -2)" ( (binary_expression "pEVar7->e_ident_magic_str + -2" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" identifier = identifier) ;) (if_statement "if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }" if (parenthesized_expression "(((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))))" ( (binary_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7))" ( (binary_expression "(pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" (parenthesized_expression "(pEVar7 < pEVar42)" ( (binary_expression "pEVar7 < pEVar42" identifier < identifier) )) && (parenthesized_expression "(uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" ( (comma_expression "uVar6 = uVar54 - 1, pEVar28 <= pEVar7" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) , (binary_expression "pEVar28 <= pEVar7" identifier <= identifier)) ))) )) && (parenthesized_expression "((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" ( (parenthesized_expression "(pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))" ( (comma_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pEVar28 < pEVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar28 < pEVar7)" ( (binary_expression "pEVar28 < pEVar7" identifier < identifier) ))))) , (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pEVar34 <= (Elf32_Ehdr *)lVar2)" ( (binary_expression "pEVar34 <= (Elf32_Ehdr *)lVar2" identifier <= (cast_expression "(Elf32_Ehdr *)lVar2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )) ))) )) (compound_statement "{\n      uVar6 = uVar54 - 2;\n    }" { (expression_statement "uVar6 = uVar54 - 2;" (assignment_expression "uVar6 = uVar54 - 2" identifier = (binary_expression "uVar54 - 2" identifier - number_literal)) ;) })) (expression_statement "*(uint *)(puVar36 + -0x44) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x44) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x44)" * (cast_expression "(uint *)(puVar36 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x44)" ( (binary_expression "puVar36 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar7;" (assignment_expression "pEVar41 = pEVar7" identifier = identifier) ;) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" if (parenthesized_expression "((int)pEVar7 < 0)" ( (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar7" - (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 8" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" if (parenthesized_expression "((int)pEVar41 <= (int)pEVar10)" ( (binary_expression "(int)pEVar41 <= (int)pEVar10" (cast_expression "(int)pEVar41" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" { (if_statement "if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" if (parenthesized_expression "(pEVar7 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar7 != (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 **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" { (expression_statement "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -100)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -100)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar36 + -0x70)" * (cast_expression "(uint *)(puVar36 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) ))))) ;) (goto_statement "goto LAB_00030cf8;" goto statement_identifier ;) })) (labeled_statement "LAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" identifier = (pointer_expression "*(int **)(puVar36 + -0x40)" * (cast_expression "(int **)(puVar36 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (piVar39 == (int *)0x0) goto LAB_00030c64;" if (parenthesized_expression "(piVar39 == (int *)0x0)" ( (binary_expression "piVar39 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;)) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c08:\n      (*pcVar51)();" statement_identifier : (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c64;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(int *)(puVar36 + -0x50) + 4;" (assignment_expression "uVar6 = *(int *)(puVar36 + -0x50) + 4" identifier = (binary_expression "*(int *)(puVar36 + -0x50) + 4" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" identifier = (cast_expression "(Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar6 < 0x7f01)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) ))))) ;) (expression_statement "*(uint *)(puVar36 + -0x70) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x70) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x70)" * (cast_expression "(uint *)(puVar36 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\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      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7d50)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" identifier = (call_expression "(*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" * (cast_expression "(undefined4 *)(puVar36 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) )))) ;) (expression_statement "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);" (assignment_expression "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -100) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -100) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -100)" * (cast_expression "(undefined4 *)(puVar36 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" else (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -100)" * (cast_expression "(undefined1 **)(puVar36 + -100)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }))) (expression_statement "iVar8 = *(int *)(puVar36 + -100);" (assignment_expression "iVar8 = *(int *)(puVar36 + -100)" identifier = (pointer_expression "*(int *)(puVar36 + -100)" * (cast_expression "(int *)(puVar36 + -100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x14)" * (cast_expression "(undefined1 **)(puVar49 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar42;" (assignment_expression "pEVar28 = pEVar42" identifier = identifier) ;) (expression_statement "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);" (call_expression "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44)" identifier (argument_list "(iVar8,pEVar42,pEVar41,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar41 = pEVar10;" (assignment_expression "pEVar41 = pEVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" if (parenthesized_expression "(*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0)" ( (binary_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0" (pointer_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50))" * (cast_expression "(int *)(iVar8 + *(int *)(puVar36 + -0x50))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(puVar36 + -0x50))" ( (binary_expression "iVar8 + *(int *)(puVar36 + -0x50)" identifier + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) )))) == number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" { (expression_statement "iVar8 = iVar8 + *(int *)(puVar36 + -0x70);" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar36 + -0x70)" identifier = (binary_expression "iVar8 + *(int *)(puVar36 + -0x70)" identifier + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))))) ;) (do_statement "do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);" do (compound_statement "{\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" if (parenthesized_expression "(pEVar41 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar41 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030bf4;" goto statement_identifier ;)) (expression_statement "piVar39 = (int *)(iVar8 + -8);" (assignment_expression "piVar39 = (int *)(iVar8 + -8)" identifier = (cast_expression "(int *)(iVar8 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -8)" ( (binary_expression "iVar8 + -8" identifier + number_literal) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 << 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 << 3)" ( (binary_expression "(int)pEVar10 << 3" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar39 == 0)" ( (binary_expression "*piVar39 == 0" (pointer_expression "*piVar39" * identifier) == number_literal) )) ;) })) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" statement_identifier : (if_statement "if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" if (parenthesized_expression "((int)pEVar10 * 8 + 4U < 0x7f01)" ( (binary_expression "(int)pEVar10 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar10 * 8 + 4U" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) < number_literal) )) (compound_statement "{\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -((int)pEVar10 * 8 + 8);" (assignment_expression "iVar8 = -((int)pEVar10 * 8 + 8)" identifier = (unary_expression "-((int)pEVar10 * 8 + 8)" - (parenthesized_expression "((int)pEVar10 * 8 + 8)" ( (binary_expression "(int)pEVar10 * 8 + 8" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar8 + 0x18)" ( (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" else (compound_statement "{\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" { (expression_statement "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) })))) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\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      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" { (expression_statement "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" identifier = (cast_expression "(Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" * (cast_expression "(undefined4 *)(puVar36 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" else (compound_statement "{\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" { (expression_statement "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" ( (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier = (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" identifier + (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) )))) + number_literal) & number_literal) ))))) ;) }))) (if_statement "if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" if (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 8U < 0x7f01)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 8U" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) < number_literal) )) (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" { (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" identifier = (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" - (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" ( (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) )))) + number_literal) & number_literal) )))) ;) (expression_statement "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -0x74)" * (cast_expression "(undefined1 **)(puVar36 + -0x74)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) )))) = (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" identifier = (binary_expression "puVar49 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" else (compound_statement "{\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" { (expression_statement "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar51 + -0x7d50)" * (pointer_expression "*(code **)(pcVar51 + -0x7d50)" * (cast_expression "(code **)(pcVar51 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d50)" ( (binary_expression "pcVar51 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x74) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -0x74) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar35 = *(undefined4 **)(puVar36 + -100);" (assignment_expression "puVar35 = *(undefined4 **)(puVar36 + -100)" identifier = (pointer_expression "*(undefined4 **)(puVar36 + -100)" * (cast_expression "(undefined4 **)(puVar36 + -100)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) (if_statement "if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" if (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" ( (binary_expression "puVar20 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" { (do_statement "do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      }" { (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" * (cast_expression "(Elf32_Ehdr **)pEVar40" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar41[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar41[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar41[-1].e_shstrndx" & (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" * (cast_expression "(Elf32_Ehdr **)pEVar40" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" identifier = (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" ( (binary_expression "0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" number_literal - (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) [ (binary_expression "((uint)pEVar30 >> 1) - 1" (parenthesized_expression "((uint)pEVar30 >> 1)" ( (binary_expression "(uint)pEVar30 >> 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - number_literal) ])))) )))) ;) (expression_statement "iVar8 = 0x1f - (int)pEVar24;" (assignment_expression "iVar8 = 0x1f - (int)pEVar24" identifier = (binary_expression "0x1f - (int)pEVar24" number_literal - (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pEVar16 = pEVar41;" (assignment_expression "pEVar16 = pEVar41" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }" { (if_statement "if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" if (parenthesized_expression "(pEVar10 == pEVar41)" ( (binary_expression "pEVar10 == pEVar41" identifier == identifier) )) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" { (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" identifier = (binary_expression "*(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" (pointer_expression "*(int *)(puVar36 + -0x4c)" * (cast_expression "(int *)(puVar36 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);" do (compound_statement "{\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        }" { (expression_statement "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(iVar8 + -4)" * (cast_expression "(Elf32_Ehdr **)(iVar8 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -4)" ( (binary_expression "iVar8 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" identifier = (binary_expression "puVar20 + -1" identifier + number_literal)) ;) (if_statement "if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" if (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28)" ( (binary_expression "*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28" (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" { (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;" if (parenthesized_expression "(pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4))" ( (binary_expression "pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)" identifier < (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + -4)" ( (binary_expression "pbVar14 + -4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00031264;" goto statement_identifier ;)) (goto_statement "goto LAB_00030dd0;" goto statement_identifier ;) })) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" identifier = (binary_expression "iVar8 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar20 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031264:\n        pEVar28 = pEVar5;" statement_identifier : (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;)) (expression_statement "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);" (call_expression "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" else (compound_statement "{\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" { (expression_statement "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 8)" ( (binary_expression "puVar36 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" ( (binary_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1" (parenthesized_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f))" ( (binary_expression "(int)pEVar30 << ((uint)pEVar24 & 0x1f)" (cast_expression "(int)pEVar30" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "((uint)pEVar24 & 0x1f)" ( (binary_expression "(uint)pEVar24 & 0x1f" (cast_expression "(uint)pEVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )) << number_literal) )))) ;) (expression_statement "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;" (assignment_expression "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (pointer_expression "*(char **)(puVar36 + -0x80)" * (cast_expression "(char **)(puVar36 + -0x80)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) )))) = (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar36 + -0x7c)" * (cast_expression "(int *)(puVar36 + -0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(pcVar51 + -0x7fcc)" * (cast_expression "(int *)(pcVar51 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + -0x7fcc)" ( (binary_expression "pcVar51 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar36 + -0x60)" * (cast_expression "(undefined4 *)(puVar36 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);" do (compound_statement "{\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      }" { (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);" (call_expression "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7cac))" ( (pointer_expression "**(code **)(pcVar51 + -0x7cac)" * (pointer_expression "*(code **)(pcVar51 + -0x7cac)" * (cast_expression "(code **)(pcVar51 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7cac)" ( (binary_expression "pcVar51 + -0x7cac" identifier + number_literal) ))))) )) (argument_list "(pEVar42,pEVar5,pEVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" identifier = (cast_expression "(Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" ( (binary_expression "(int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" ( (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" ( (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1" (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (parenthesized_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60))" ( (binary_expression "(int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) ))))) )) * number_literal)) + number_literal) )))) == number_literal) )))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }" { (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" { (expression_statement "uVar32._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar32._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar32._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar32._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar32._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar32._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar32._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar32._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar32._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar32._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar32._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar32._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" { (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar32 = *(undefined4 *)pbVar14;" (assignment_expression "uVar32 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" identifier = (cast_expression "(byte *)pEVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" identifier = (cast_expression "(Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" else (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar36 + -0x7c)" * (cast_expression "(code **)(puVar36 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar22._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar22._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar22._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar22._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" else (compound_statement "{\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" { (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->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 "pEVar40->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar22" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(undefined4 *)pbVar14;" (assignment_expression "uVar22 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar16;" (assignment_expression "pbVar14 = (byte *)pEVar16" identifier = (cast_expression "(byte *)pEVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = uVar22;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = uVar22" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" * (cast_expression "(undefined4 **)(puVar36 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) ))))) = identifier) ;) }))) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" * (cast_expression "(code **)(pcVar51 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7d8c)" ( (binary_expression "pcVar51 + -0x7d8c" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) (if_statement "if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" if (parenthesized_expression "((int)pEVar24 < 0)" ( (binary_expression "(int)pEVar24 < 0" (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -100);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -100)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -100)" * (cast_expression "(undefined4 *)(puVar36 + -100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -100)" ( (binary_expression "puVar36 + -100" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);" (call_expression "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(pEVar42,pEVar5,pEVar16,uVar44)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" identifier = (cast_expression "(Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" ( (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1)" (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "(-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" ( (binary_expression "-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" number_literal - (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" ( (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" ( (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar41->e_ident_magic_str * 4" (cast_expression "(int)pEVar41->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + number_literal) )))) == number_literal) )))) ))) + (cast_expression "(int)(pEVar41->e_ident_magic_str + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar41->e_ident_magic_str + -1)" ( (binary_expression "pEVar41->e_ident_magic_str + -1" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }" { (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" { (expression_statement "uVar33._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar33._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar33._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar33._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar33._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar33._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar33._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar33._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar33._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar33._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar33._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar33._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar33 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x18)" ( (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x10)" ( (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 8)" ( (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar33" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" else (compound_statement "{\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" { (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" identifier = (pointer_expression "&pEVar42->e_ident_class" & (field_expression "pEVar42->e_ident_class" identifier -> field_identifier))) ;) (do_statement "do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                }" { (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar33 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x18)" ( (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 0x10)" ( (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar33 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar33 >> 8)" ( (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar33" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" identifier = (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar33 = *(undefined4 *)pbVar14;" (assignment_expression "uVar33 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" identifier = (cast_expression "(byte *)pEVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;" (assignment_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33" (pointer_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" * (cast_expression "(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" ( (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" * (cast_expression "(int *)(puVar36 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x60)" ( (binary_expression "puVar36 + -0x60" identifier + number_literal) )))) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }) (else_clause "else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" else (compound_statement "{\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" identifier = (pointer_expression "*(code **)(puVar36 + -0x7c)" * (cast_expression "(code **)(puVar36 + -0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7c)" ( (binary_expression "puVar36 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar42;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar42" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar42" * (cast_expression "(Elf32_Ehdr **)pEVar42" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }" { (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar28" (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 "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" else (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" { (do_statement "do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              }" { (expression_statement "*(Elf32_Ehdr **)pEVar27 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar27 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar27" * (cast_expression "(Elf32_Ehdr **)pEVar27" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar27->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar27->e_ident_class" & (field_expression "pEVar27->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = pEVar28;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = pEVar28" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" * (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" * (cast_expression "(undefined4 **)(puVar36 + -0x80)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x80)" ( (binary_expression "puVar36 + -0x80" identifier + number_literal) ))))) = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) }))) })) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar24 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar24 << 1)" ( (binary_expression "(int)pEVar24 << 1" (cast_expression "(int)pEVar24" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 8)" ( (binary_expression "puVar36 + 8" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;" statement_identifier : (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)) ;)) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x6c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x6c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" if (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }" { (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" statement_identifier : (if_statement "if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" if (parenthesized_expression "((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0))" ( (binary_expression "(0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)pEVar16)" ( (binary_expression "0 < (int)pEVar16" number_literal < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" ( (binary_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" * (cast_expression "(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" { (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);" do (compound_statement "{\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" { (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;" if (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" ( (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" ( (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (goto_statement "goto LAB_00030e34;" goto statement_identifier ;)) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" identifier = (cast_expression "(char *)(pbVar14 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar18 == 0)" ( (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) }))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" if (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" ( (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" ( (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) , (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" number_literal < (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" * (cast_expression "(int *)(puVar36 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x5c)" ( (binary_expression "puVar36 + -0x5c" identifier + number_literal) )))) + number_literal) )))))) ))) )) (compound_statement "{\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" { (labeled_statement "LAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);" statement_identifier : (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar39 < (int)pEVar16) goto LAB_00031474;" if (parenthesized_expression "(*piVar39 < (int)pEVar16)" ( (binary_expression "*piVar39 < (int)pEVar16" (pointer_expression "*piVar39" * identifier) < (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00031474;" goto statement_identifier ;)) (labeled_statement "LAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" statement_identifier : (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030e94;" goto statement_identifier ;)) }) (else_clause "else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" else (compound_statement "{\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" { (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030f04;" goto statement_identifier ;)) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x68) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x68) + 8" (pointer_expression "*(int *)(puVar36 + -0x68)" * (cast_expression "(int *)(puVar36 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x68)" ( (binary_expression "puVar36 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pEVar28 = pEVar24;" (assignment_expression "pEVar28 = pEVar24" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);" (assignment_expression "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7b2c))" ( (pointer_expression "**(code **)(pcVar51 + -0x7b2c)" * (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" * (cast_expression "(code **)(pcVar51 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b2c)" ( (binary_expression "pcVar51 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar24,pEVar5,pEVar16)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" { (labeled_statement "LAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" statement_identifier : (if_statement "if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" if (parenthesized_expression "((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16))" ( (binary_expression "(pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)" (parenthesized_expression "(pEVar5 == pEVar24)" ( (binary_expression "pEVar5 == pEVar24" identifier == identifier) )) || (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" ( (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);" do (compound_statement "{\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          }" { (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)pbVar15)" ( (binary_expression "pEVar28 != (Elf32_Ehdr *)pbVar15" identifier != (cast_expression "(Elf32_Ehdr *)pbVar15" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" identifier = (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" else (compound_statement "{\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" { (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" if (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" ( (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" { (expression_statement "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pbVar14;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pbVar14" identifier = (pointer_expression "*(Elf32_Ehdr **)pbVar14" * (cast_expression "(Elf32_Ehdr **)pbVar14" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar15" * (cast_expression "(undefined1 **)pbVar15" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar28[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar28[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar28[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shstrndx" & (field_expression "pEVar28[-1].e_shstrndx" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar27 = pEVar28;" (assignment_expression "pEVar27 = pEVar28" identifier = identifier) ;) (while_statement "while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" while (parenthesized_expression "(pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)" ( (comma_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0" (assignment_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar16->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier))) , (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              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar10 == pEVar16) goto LAB_00031130;" if (parenthesized_expression "(pEVar10 == pEVar16)" ( (binary_expression "pEVar10 == pEVar16" identifier == identifier) )) (goto_statement "goto LAB_00031130;" goto statement_identifier ;)) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4)" identifier = (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + 4)" * (cast_expression "(Elf32_Ehdr **)(pbVar14 + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar27[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar27[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar27[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27[-1].e_shstrndx" & (field_expression "pEVar27[-1].e_shstrndx" (subscript_expression "pEVar27[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000314a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" identifier = (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) ;)) }))) (expression_statement "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar5->e_ident_magic_str + iVar8" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar13._0_1_ = pEVar27->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar27->e_ident_magic_num" (field_expression "iVar13._0_1_" identifier . field_identifier) = (field_expression "pEVar27->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "iVar13._1_1_ = pEVar27->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar27->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[0]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._2_1_ = pEVar27->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar27->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[1]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13._3_1_ = pEVar27->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar27->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" identifier . field_identifier) = (subscript_expression "pEVar27->e_ident_magic_str[2]" (field_expression "pEVar27->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" { (expression_statement "iVar8 = *(int *)(puVar36 + -0x78);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x78)" identifier = (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" identifier = (cast_expression "(byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x70)" * (cast_expression "(int *)(puVar36 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x70)" ( (binary_expression "puVar36 + -0x70" identifier + number_literal) ))))) + number_literal) )))) ;) (do_statement "do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);" do (compound_statement "{\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          }" { (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" { (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030f08;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" identifier = (cast_expression "(char *)(pbVar14 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + -8)" ( (binary_expression "pbVar14 + -8" identifier + number_literal) )))) ;) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" identifier = (binary_expression "pbVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pcVar18 == 0)" ( (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) ;) (expression_statement "*(int *)(puVar36 + -0x78) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x78) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" if (parenthesized_expression "(**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78))" ( (binary_expression "**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)" (pointer_expression "**(int **)(puVar36 + -0x54)" * (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) < (pointer_expression "*(int *)(puVar36 + -0x78)" * (cast_expression "(int *)(puVar36 + -0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) )) (compound_statement "{\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" { (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00031474:\n          pEVar28 = pEVar16;" statement_identifier : (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" identifier = identifier) ;)) (expression_statement "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54));" (call_expression "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54))" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(*(undefined4 *)(puVar36 + -0x54))" ( (pointer_expression "*(undefined4 *)(puVar36 + -0x54)" * (cast_expression "(undefined4 *)(puVar36 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030e44;" goto statement_identifier ;) })) (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78)" ( (binary_expression "puVar36 + -0x78" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar30 & 1)" ( (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar5;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar5" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar5" * (cast_expression "(Elf32_Ehdr **)pEVar5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);" (assignment_expression "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" * (cast_expression "(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 8)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 8" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar35 = puVar31;" (assignment_expression "puVar35 = puVar31" identifier = identifier) ;) (expression_statement "pEVar30 = pEVar5;" (assignment_expression "pEVar30 = pEVar5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" { (do_statement "do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        }" { (expression_statement "*puVar35 = pEVar28;" (assignment_expression "*puVar35 = pEVar28" (pointer_expression "*puVar35" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;" (assignment_expression "pEVar28 = *(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 "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (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 "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (binary_expression "puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" identifier + (cast_expression "(int)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "*puVar31 = pEVar28;" (assignment_expression "*puVar31 = pEVar28" (pointer_expression "*puVar31" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" else (compound_statement "{\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" { (expression_statement "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);" (assignment_expression "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" identifier = (call_expression "(**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" * (cast_expression "(code **)(pcVar51 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7ad4)" ( (binary_expression "pcVar51 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "(pEVar42,pEVar5,pEVar16,pEVar40)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" identifier = (pointer_expression "*(int *)(puVar36 + -0x88)" * (cast_expression "(int *)(puVar36 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (int)pEVar16 * 4;" (assignment_expression "iVar8 = (int)pEVar16 * 4" identifier = (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" ( (binary_expression "pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1)" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((iVar37 != 0) - 1)" ( (binary_expression "(iVar37 != 0) - 1" (parenthesized_expression "(iVar37 != 0)" ( (binary_expression "iVar37 != 0" identifier != number_literal) )) - number_literal) ))) )))) ;) (expression_statement "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;" (assignment_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" * (cast_expression "(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar42->e_ident_magic_str + iVar8 + -1)" ( (binary_expression "pEVar42->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar42->e_ident_magic_str + iVar8" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pEVar24 = pEVar40;" (assignment_expression "pEVar24 = pEVar40" identifier = identifier) ;) (if_statement "if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" if (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" ( (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" { (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" identifier = (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" * (cast_expression "(undefined4 *)(puVar36 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x4c)" ( (binary_expression "puVar36 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" * (cast_expression "(undefined4 *)(puVar49 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + 0x14)" ( (binary_expression "puVar49 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" * (cast_expression "(undefined4 *)(puVar36 + -0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x74)" ( (binary_expression "puVar36 + -0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" * (cast_expression "(undefined1 **)(puVar49 + 0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + 0x10)" ( (binary_expression "puVar49 + 0x10" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x44" identifier + number_literal)) ;) (expression_statement "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10)" identifier (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10[-1].e_shstrndx" & (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" identifier = (pointer_expression "*(int *)(puVar36 + -0x88)" * (cast_expression "(int *)(puVar36 + -0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar25._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar25._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" if (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" ( (binary_expression "puVar9 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }" { (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->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 "pEVar5->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }) (else_clause "else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" else (compound_statement "{\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" { (do_statement "do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" { (expression_statement "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar16->e_ident_magic_str[0]" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar16->e_ident_magic_str[1]" (field_expression "pEVar16->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 "pEVar16->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar16->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar16->e_ident_magic_str[2]" (field_expression "pEVar16->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar25._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar25._0_1_ = pEVar40->e_ident_class" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar25._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar25._1_1_ = pEVar40->e_ident_data" (field_expression "uVar25._1_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar25._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar25._2_1_ = pEVar40->e_ident_version" (field_expression "uVar25._2_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar25._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar25._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar25._3_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;" (assignment_expression "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar16->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar16->e_ident_class" & (field_expression "pEVar16->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;" (assignment_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25" (pointer_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" * (cast_expression "(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" ( (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (pointer_expression "*(int *)(puVar36 + -0x50)" * (cast_expression "(int *)(puVar36 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x50)" ( (binary_expression "puVar36 + -0x50" identifier + number_literal) ))))) + number_literal) )))) = identifier) ;) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" identifier = identifier) ;) }))) (labeled_statement "LAB_000312bc:\n        pEVar28 = pEVar5;" statement_identifier : (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;)) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar26 + -0x7ae0)" * (pointer_expression "*(code **)(iVar26 + -0x7ae0)" * (cast_expression "(code **)(iVar26 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7ae0)" ( (binary_expression "iVar26 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" * (cast_expression "(undefined4 *)(puVar36 + -0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x6c)" ( (binary_expression "puVar36 + -0x6c" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030ddc;" goto statement_identifier ;) })) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" if (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" { (expression_statement "uVar29._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar29._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar29._0_1_" identifier . field_identifier) = (field_expression "pEVar42->e_ident_magic_num" identifier -> field_identifier)) ;) (expression_statement "uVar29._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar29._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar29._1_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar29._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar29._2_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar29._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar29._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar29._3_1_" identifier . field_identifier) = (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" { (do_statement "do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" { (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar29._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar29._0_1_ = pEVar40->e_ident_class" (field_expression "uVar29._0_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar29._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar29._1_1_ = pEVar40->e_ident_data" (field_expression "uVar29._1_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar29._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar29._2_1_ = pEVar40->e_ident_version" (field_expression "uVar29._2_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar29._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar29._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar29._3_1_" identifier . field_identifier) = (field_expression "pEVar40->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar40->e_ident_class" & (field_expression "pEVar40->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar16[-1].e_shstrndx" & (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)uVar29 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x18)" ( (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 0x10)" ( (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar29 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar29 >> 8)" ( (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000312bc;" goto statement_identifier ;) })) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" identifier = identifier) ;) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40)" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" ( (pointer_expression "**(code **)(iVar26 + -0x7ae0)" * (pointer_expression "*(code **)(iVar26 + -0x7ae0)" * (cast_expression "(code **)(iVar26 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7ae0)" ( (binary_expression "iVar26 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(pEVar5,pEVar5,0,pEVar40)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" identifier = identifier) ;) (labeled_statement "LAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" identifier = (pointer_expression "*(int **)(puVar36 + -0x54)" * (cast_expression "(int **)(puVar36 + -0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" statement_identifier : (if_statement "if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" if (parenthesized_expression "(*piVar39 < 0)" ( (binary_expression "*piVar39 < 0" (pointer_expression "*piVar39" * identifier) < number_literal) )) (compound_statement "{\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }" { (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54)" identifier = (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x54)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x54)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) ))))) ;) (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 "(**(code **)(pcVar51 + -0x7a84))(pEVar24);" (call_expression "(**(code **)(pcVar51 + -0x7a84))(pEVar24)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7a84))" ( (pointer_expression "**(code **)(pcVar51 + -0x7a84)" * (pointer_expression "*(code **)(pcVar51 + -0x7a84)" * (cast_expression "(code **)(pcVar51 + -0x7a84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a84)" ( (binary_expression "pcVar51 + -0x7a84" identifier + number_literal) ))))) )) (argument_list "(pEVar24)" ( identifier ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (expression_statement "pEVar24->e_ident_class = 0;" (assignment_expression "pEVar24->e_ident_class = 0" (field_expression "pEVar24->e_ident_class" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_data = 0;" (assignment_expression "pEVar24->e_ident_data = 0" (field_expression "pEVar24->e_ident_data" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_version = 0;" (assignment_expression "pEVar24->e_ident_version = 0" (field_expression "pEVar24->e_ident_version" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar24->e_ident_osabi = 0;" (assignment_expression "pEVar24->e_ident_osabi = 0" (field_expression "pEVar24->e_ident_osabi" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" else (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" { (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" ( (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" * (cast_expression "(int *)(puVar36 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x54)" ( (binary_expression "puVar36 + -0x54" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })))) }))) (labeled_statement "LAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);" statement_identifier : (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" identifier = (pointer_expression "*(int **)(puVar36 + -0x40)" * (cast_expression "(int **)(puVar36 + -0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x40)" ( (binary_expression "puVar36 + -0x40" identifier + number_literal) ))))) ;)) (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" identifier = (pointer_expression "*(int **)(puVar36 + -0x58)" * (cast_expression "(int **)(puVar36 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) ))))) ;) (if_statement "if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" if (parenthesized_expression "(piVar39 != (int *)0x0)" ( (binary_expression "piVar39 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" * (cast_expression "(code **)(pcVar51 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7a2c)" ( (binary_expression "pcVar51 + -0x7a2c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00030c08;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" else (compound_statement "{\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" { (expression_statement "pcVar51 = *(code **)(pcVar46 + 0x66c10);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + 0x66c10)" identifier = (pointer_expression "*(code **)(pcVar46 + 0x66c10)" * (cast_expression "(code **)(pcVar46 + 0x66c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + 0x66c10)" ( (binary_expression "pcVar46 + 0x66c10" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c)" * (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x3c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x3c)" ( (binary_expression "puVar36 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar36 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar36 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar36 + -0x34)" * (cast_expression "(undefined4 *)(puVar36 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x34)" ( (binary_expression "puVar36 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c" (pointer_expression "*(undefined1 **)(puVar36 + -0x30)" * (cast_expression "(undefined1 **)(puVar36 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x30)" ( (binary_expression "puVar36 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar36 + -0x3c" identifier + number_literal)) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" identifier = (pointer_expression "*(code **)(puVar36 + -0x88)" * (cast_expression "(code **)(puVar36 + -0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x88)" ( (binary_expression "puVar36 + -0x88" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);" statement_identifier : (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" identifier = (pointer_expression "*(int **)(puVar36 + -0x58)" * (cast_expression "(int **)(puVar36 + -0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x58)" ( (binary_expression "puVar36 + -0x58" identifier + number_literal) ))))) ;)) }))) (if_statement "if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }" if (parenthesized_expression "(*(int *)(puVar36 + -0x2c) == *piVar12)" ( (binary_expression "*(int *)(puVar36 + -0x2c) == *piVar12" (pointer_expression "*(int *)(puVar36 + -0x2c)" * (cast_expression "(int *)(puVar36 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x2c)" ( (binary_expression "puVar36 + -0x2c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return *piVar12;\n  }" { (return_statement "return *piVar12;" return (pointer_expression "*piVar12" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar51 + -0x7b70)" * (cast_expression "(code **)(pcVar51 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + -0x7b70)" ( (binary_expression "pcVar51 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = 0x3153c;" (assignment_expression "uVar44 = 0x3153c" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6db00;" (assignment_expression "pcVar46 = pcVar51 + 0x6db00" identifier = (binary_expression "pcVar51 + 0x6db00" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x10)" ( (binary_expression "puVar49 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar12 = *(int **)(pcVar51 + 0x66000);" (assignment_expression "piVar12 = *(int **)(pcVar51 + 0x66000)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x66000)" * (cast_expression "(int **)(pcVar51 + 0x66000)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x66000)" ( (binary_expression "pcVar51 + 0x66000" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0" (pointer_expression "*(undefined1 **)(puVar49 + -8)" * (cast_expression "(undefined1 **)(puVar49 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -8)" ( (binary_expression "puVar49 + -8" identifier + number_literal) )))) = (binary_expression "puVar36 + -0xa0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x14)" ( (binary_expression "puVar49 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x18)" ( (binary_expression "puVar49 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar49 + -4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar49 + -4) = uVar44" (pointer_expression "*(undefined4 *)(puVar49 + -4)" * (cast_expression "(undefined4 *)(puVar49 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -4)" ( (binary_expression "puVar49 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar49 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0xc)" ( (binary_expression "puVar49 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar49 + -0x28) = pcVar46;" (assignment_expression "*(code **)(puVar49 + -0x28) = pcVar46" (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar49 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar49 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" if (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar28)" ( (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar28" (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 (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }" { (if_statement "if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" if (parenthesized_expression "(*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1))" ( (binary_expression "*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" (pointer_expression "*piVar39" * identifier) < (cast_expression "(int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" ( (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1" (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6)" (parenthesized_expression "((uint)pEVar28 >> 5)" ( (binary_expression "(uint)pEVar28 >> 5" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (parenthesized_expression "((uint)pEVar28 >> 6)" ( (binary_expression "(uint)pEVar28 >> 6" (cast_expression "(uint)pEVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + number_literal) )))) )) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();" (assignment_expression "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar51 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar51 + 0x6607c))" ( (pointer_expression "**(code **)(pcVar51 + 0x6607c)" * (pointer_expression "*(code **)(pcVar51 + 0x6607c)" * (cast_expression "(code **)(pcVar51 + 0x6607c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x6607c)" ( (binary_expression "pcVar51 + 0x6607c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" else (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" { (expression_statement "pEVar41 = (Elf32_Ehdr *)piVar39[2];" (assignment_expression "pEVar41 = (Elf32_Ehdr *)piVar39[2]" identifier = (cast_expression "(Elf32_Ehdr *)piVar39[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" identifier = (call_expression "(**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7efc))" ( (pointer_expression "**(code **)(pcVar46 + -0x7efc)" * (pointer_expression "*(code **)(pcVar46 + -0x7efc)" * (cast_expression "(code **)(pcVar46 + -0x7efc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7efc)" ( (binary_expression "pcVar46 + -0x7efc" identifier + number_literal) ))))) )) (argument_list "(pEVar41,pEVar28)" ( identifier , identifier )))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" ( (binary_expression "*(int *)(pcVar46 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar46 + -0x7c6c)" * (cast_expression "(int *)(pcVar46 + -0x7c6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + -0x7c6c)" ( (binary_expression "pcVar46 + -0x7c6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar6 = 8;" (assignment_expression "uVar6 = 8" identifier = number_literal) ;) (do_statement "do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);" do (compound_statement "{\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    }" { (expression_statement "uVar54 = uVar6;" (assignment_expression "uVar54 = uVar6" identifier = identifier) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)*puVar35" identifier = (cast_expression "(Elf32_Ehdr *)*puVar35" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ;) (expression_statement "puVar35 = puVar35 + -1;" (assignment_expression "puVar35 = puVar35 + -1" identifier = (binary_expression "puVar35 + -1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" identifier = (binary_expression "uVar54 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(pEVar40 < pEVar28)" ( (binary_expression "pEVar40 < pEVar28" identifier < identifier) )) ;) (if_statement "if (uVar54 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar54 == 0)" ( (binary_expression "uVar54 == 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 "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;" (assignment_expression "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4" identifier = (binary_expression "((iVar8 + 1U) / uVar54 + 1) * 4" (parenthesized_expression "((iVar8 + 1U) / uVar54 + 1)" ( (binary_expression "(iVar8 + 1U) / uVar54 + 1" (binary_expression "(iVar8 + 1U) / uVar54" (parenthesized_expression "(iVar8 + 1U)" ( (binary_expression "iVar8 + 1U" identifier + number_literal) )) / identifier) + number_literal) )) * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar49 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar49 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar49 + -0x20)" * (cast_expression "(undefined4 *)(puVar49 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(uVar6 < 0x7f01)" ( (binary_expression "uVar6 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }" { (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar9 = puVar49 + iVar8 + -0x38;" (assignment_expression "puVar9 = puVar49 + iVar8 + -0x38" identifier = (binary_expression "puVar49 + iVar8 + -0x38" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" identifier = (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + iVar8 + -0x28)" ( (binary_expression "puVar49 + iVar8 + -0x28" (binary_expression "puVar49 + iVar8" identifier + identifier) + number_literal) )))) ;) }) (else_clause "else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" identifier = (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7d50))" ( (pointer_expression "**(code **)(pcVar46 + -0x7d50)" * (pointer_expression "*(code **)(pcVar46 + -0x7d50)" * (cast_expression "(code **)(pcVar46 + -0x7d50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7d50)" ( (binary_expression "pcVar46 + -0x7d50" identifier + number_literal) ))))) )) (argument_list "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar55 = 1;" (assignment_expression "uVar55 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar54 = 6;" (assignment_expression "uVar54 = 6" identifier = number_literal) ;) (do_statement "do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);" do (compound_statement "{\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    }" { (expression_statement "uVar53 = uVar6 + 1;" (assignment_expression "uVar53 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar8;" (assignment_expression "iVar26 = iVar8" identifier = identifier) ;) (expression_statement "uVar17 = uVar54;" (assignment_expression "uVar17 = uVar54" identifier = identifier) ;) (if_statement "if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" if (parenthesized_expression "((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0)" ( (binary_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0" (parenthesized_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1))" ( (binary_expression "uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" identifier & (pointer_expression "*(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" * (cast_expression "(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" ( (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4 + -1" (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4" (field_expression "pEVar41->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar37 * 4" identifier * number_literal)) + number_literal) ))))) )) == number_literal) )) (compound_statement "{\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" { (expression_statement "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;" (assignment_expression "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3" identifier = (binary_expression "(uVar53 & 1) + 1 + uVar53 * 3" (binary_expression "(uVar53 & 1) + 1" (parenthesized_expression "(uVar53 & 1)" ( (binary_expression "uVar53 & 1" identifier & number_literal) )) + number_literal) + (binary_expression "uVar53 * 3" identifier * number_literal))) ;) (if_statement "if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" ( (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20" (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28)" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(pEVar28)" identifier (argument_list "(pEVar28)" ( identifier )))) >> number_literal) ))) == number_literal) )) (compound_statement "{\n          uVar17 = uVar54 * uVar17;\n        }" { (expression_statement "uVar17 = uVar54 * uVar17;" (assignment_expression "uVar17 = uVar54 * uVar17" identifier = (binary_expression "uVar54 * uVar17" identifier * identifier)) ;) }) (else_clause "else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" else (compound_statement "{\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" { (expression_statement "iVar26 = iVar8 + 1;" (assignment_expression "iVar26 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" * (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" ( (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar8 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }))) })) (expression_statement "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);" (assignment_expression "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f)" identifier = (binary_expression "uVar55 * 2 - ((int)uVar55 >> 0x1f)" (binary_expression "uVar55 * 2" identifier * number_literal) - (parenthesized_expression "((int)uVar55 >> 0x1f)" ( (binary_expression "(int)uVar55 >> 0x1f" (cast_expression "(int)uVar55" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" identifier = (binary_expression "uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" identifier != (binary_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1)" ( (binary_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pEVar28[-1].e_shentsize + 1)" ( (binary_expression "(int)&pEVar28[-1].e_shentsize + 1" (cast_expression "(int)&pEVar28[-1].e_shentsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar28[-1].e_shentsize" & (field_expression "pEVar28[-1].e_shentsize" (subscript_expression "pEVar28[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) | number_literal) )) / number_literal))) ;) (expression_statement "iVar37 = iVar37 + (uVar55 & 1);" (assignment_expression "iVar37 = iVar37 + (uVar55 & 1)" identifier = (binary_expression "iVar37 + (uVar55 & 1)" identifier + (parenthesized_expression "(uVar55 & 1)" ( (binary_expression "uVar55 & 1" identifier & number_literal) )))) ;) (expression_statement "iVar8 = iVar26;" (assignment_expression "iVar8 = iVar26" identifier = identifier) ;) (expression_statement "uVar6 = uVar53;" (assignment_expression "uVar6 = uVar53" identifier = identifier) ;) (expression_statement "uVar54 = uVar17;" (assignment_expression "uVar54 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }" { (expression_statement "*(uint *)piVar39[2] = uVar17;" (assignment_expression "*(uint *)piVar39[2] = uVar17" (pointer_expression "*(uint *)piVar39[2]" * (cast_expression "(uint *)piVar39[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" else (compound_statement "{\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7dbc);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7dbc)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7dbc)" * (cast_expression "(code **)(pcVar46 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7dbc)" ( (binary_expression "pcVar46 + -0x7dbc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" * (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" ( (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4" (field_expression "pEVar40->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar51)(piVar39,pEVar40,iVar26 + 1);" (call_expression "(*pcVar51)(piVar39,pEVar40,iVar26 + 1)" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "(piVar39,pEVar40,iVar26 + 1)" ( identifier , identifier , (binary_expression "iVar26 + 1" identifier + number_literal) ))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar43 = *(int **)(puVar49 + -0x20);" (assignment_expression "piVar43 = *(int **)(puVar49 + -0x20)" identifier = (pointer_expression "*(int **)(puVar49 + -0x20)" * (cast_expression "(int **)(puVar49 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x20)" ( (binary_expression "puVar49 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" if (parenthesized_expression "(piVar43 != (int *)0x0)" ( (binary_expression "piVar43 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" { (expression_statement "(**(code **)(pcVar46 + -0x7a2c))();" (call_expression "(**(code **)(pcVar46 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar46 + -0x7a2c))" ( (pointer_expression "**(code **)(pcVar46 + -0x7a2c)" * (pointer_expression "*(code **)(pcVar46 + -0x7a2c)" * (cast_expression "(code **)(pcVar46 + -0x7a2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7a2c)" ( (binary_expression "pcVar46 + -0x7a2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" identifier = (pointer_expression "*(code **)(puVar49 + -0x28)" * (cast_expression "(code **)(puVar49 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar49 + -0x28)" ( (binary_expression "puVar49 + -0x28" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" else (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" ( (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c)" (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar51 + 0x65b2c)" * (cast_expression "(int *)(pcVar51 + 0x65b2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x65b2c)" ( (binary_expression "pcVar51 + 0x65b2c" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar39[2]" * (cast_expression "(undefined4 *)piVar39[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar39[2]" identifier [ number_literal ]))) = (pointer_expression "*(undefined4 *)pEVar27" * (cast_expression "(undefined4 *)pEVar27" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar43 = piVar39;" (assignment_expression "piVar43 = piVar39" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar28;" (assignment_expression "pEVar40 = pEVar28" identifier = identifier) ;) (expression_statement "pEVar28 = pEVar27;" (assignment_expression "pEVar28 = pEVar27" identifier = identifier) ;) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" identifier = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) }))) (if_statement "if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }" if (parenthesized_expression "(*(int *)(puVar49 + -0x1c) == *piVar12)" ( (binary_expression "*(int *)(puVar49 + -0x1c) == *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" * (cast_expression "(int *)(puVar49 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar49 + -0x1c)" ( (binary_expression "puVar49 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return *piVar12;\n  }" { (return_statement "return *piVar12;" return (pointer_expression "*piVar12" * identifier) ;) })) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7b70)" identifier = (pointer_expression "*(code **)(pcVar46 + -0x7b70)" * (cast_expression "(code **)(pcVar46 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7b70)" ( (binary_expression "pcVar46 + -0x7b70" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = __gmpz_probab_prime_p;" (assignment_expression "pcVar52 = __gmpz_probab_prime_p" identifier = identifier) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x659a8);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x659a8)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x659a8)" * (cast_expression "(code **)(pcVar51 + 0x659a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x659a8)" ( (binary_expression "pcVar51 + 0x659a8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar9 + -0x24) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x24) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x24)" * (cast_expression "(int **)(puVar9 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x20) = piVar12;" (assignment_expression "*(int **)(puVar9 + -0x20) = piVar12" (pointer_expression "*(int **)(puVar9 + -0x20)" * (cast_expression "(int **)(puVar9 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar39 = *(int **)(pcVar51 + 0x65da0);" (assignment_expression "piVar39 = *(int **)(pcVar51 + 0x65da0)" identifier = (pointer_expression "*(int **)(pcVar51 + 0x65da0)" * (cast_expression "(int **)(pcVar51 + 0x65da0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65da0)" ( (binary_expression "pcVar51 + 0x65da0" identifier + number_literal) ))))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x1c)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;" (assignment_expression "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0" (pointer_expression "*(code **)(puVar9 + -0x90)" * (cast_expression "(code **)(puVar9 + -0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) )))) = (binary_expression "pcVar51 + 0x6d8a0" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x28)" ( (binary_expression "puVar9 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar52" (pointer_expression "*(code **)(puVar9 + -4)" * (cast_expression "(code **)(puVar9 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38" (pointer_expression "*(undefined1 **)(puVar9 + -8)" * (cast_expression "(undefined1 **)(puVar9 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = (binary_expression "puVar49 + -0x38" identifier + number_literal)) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xc)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xc)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "iVar8 = (*pcVar46)();" (assignment_expression "iVar8 = (*pcVar46)()" identifier = (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "puVar19 = (uint *)piVar43[2];" (assignment_expression "puVar19 = (uint *)piVar43[2]" identifier = (cast_expression "(uint *)piVar43[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar43[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar10 = (Elf32_Ehdr *)piVar43[1];" (assignment_expression "pEVar10 = (Elf32_Ehdr *)piVar43[1]" identifier = (cast_expression "(Elf32_Ehdr *)piVar43[1]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar43[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (if_statement "if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" { (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" identifier = (cast_expression "(Elf32_Ehdr *)0xf4240" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43)" identifier = (call_expression "(**(code **)(iVar37 + -0x7ab8))(piVar43)" (parenthesized_expression "(**(code **)(iVar37 + -0x7ab8))" ( (pointer_expression "**(code **)(iVar37 + -0x7ab8)" * (pointer_expression "*(code **)(iVar37 + -0x7ab8)" * (cast_expression "(code **)(iVar37 + -0x7ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7ab8)" ( (binary_expression "iVar37 + -0x7ab8" identifier + number_literal) ))))) )) (argument_list "(piVar43)" ( identifier )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" { (if_statement "if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" if (parenthesized_expression "(uVar6 < 3)" ( (binary_expression "uVar6 < 3" identifier < number_literal) )) (compound_statement "{\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 != 2) {\n            iVar8 = 0;\n          }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n            iVar8 = 0;\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" else (compound_statement "{\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" { (expression_statement "uVar54 = 3;" (assignment_expression "uVar54 = 3" identifier = number_literal) ;) (if_statement "if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" if (parenthesized_expression "((uVar6 & 1) != 0)" ( (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" { (do_statement "do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);" do (compound_statement "{\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            }" { (if_statement "if (uVar54 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar54 == 0)" ( (binary_expression "uVar54 == 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 "uVar55 = uVar6 % uVar54;" (assignment_expression "uVar55 = uVar6 % uVar54" identifier = (binary_expression "uVar6 % uVar54" identifier % identifier)) ;) (if_statement "if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" if (parenthesized_expression "(uVar6 / uVar54 < uVar54)" ( (binary_expression "uVar6 / uVar54 < uVar54" (binary_expression "uVar6 / uVar54" identifier / identifier) < identifier) )) (compound_statement "{\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "uVar54 = uVar54 + 2;" (assignment_expression "uVar54 = uVar54 + 2" identifier = (binary_expression "uVar54 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar55 != 0)" ( (binary_expression "uVar55 != 0" identifier != number_literal) )) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }))) })) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10" identifier = (cast_expression "(Elf32_Ehdr *)-(int)pEVar10" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pEVar10" - (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*(uint **)(puVar9 + -0x6c) = puVar19;" (assignment_expression "*(uint **)(puVar9 + -0x6c) = puVar19" (pointer_expression "*(uint **)(puVar9 + -0x6c)" * (cast_expression "(uint **)(puVar9 + -0x6c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x6c)" ( (binary_expression "puVar9 + -0x6c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar43 = (int *)(puVar9 + -0x74);" (assignment_expression "piVar43 = (int *)(puVar9 + -0x74)" identifier = (cast_expression "(int *)(puVar9 + -0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x74)" ( (binary_expression "puVar9 + -0x74" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x70)" ( (binary_expression "puVar9 + -0x70" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" if (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" { (expression_statement "uVar6 = uVar6 & 1;" (assignment_expression "uVar6 = uVar6 & 1" identifier = (binary_expression "uVar6 & 1" identifier & number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (uVar6 == 0) goto LAB_00031824;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" identifier = identifier) ;) (if_statement "if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" if (parenthesized_expression "((int)pEVar10 < 10)" ( (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" identifier = (call_expression "(**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c24))" ( (pointer_expression "**(code **)(iVar37 + -0x7c24)" * (pointer_expression "*(code **)(iVar37 + -0x7c24)" * (cast_expression "(code **)(iVar37 + -0x7c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7c24)" ( (binary_expression "iVar37 + -0x7c24" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" else (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" identifier = (call_expression "(**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar37 + -0x7b80))" ( (pointer_expression "**(code **)(iVar37 + -0x7b80)" * (pointer_expression "*(code **)(iVar37 + -0x7b80)" * (cast_expression "(code **)(iVar37 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7b80)" ( (binary_expression "iVar37 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,0xc0cfd797)" ( identifier , identifier , number_literal )))) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) }))) (if_statement "if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" if (parenthesized_expression "((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d))" ( (binary_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))))" ( (binary_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))))" ( (binary_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7))" ( (binary_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)" (parenthesized_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5))" ( (binary_expression "(uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)" (parenthesized_expression "(uVar54 != (uVar54 / 3) * 3)" ( (binary_expression "uVar54 != (uVar54 / 3) * 3" identifier != (binary_expression "(uVar54 / 3) * 3" (parenthesized_expression "(uVar54 / 3)" ( (binary_expression "uVar54 / 3" identifier / number_literal) )) * number_literal)) )) && (parenthesized_expression "(uVar54 != (uVar54 / 5) * 5)" ( (binary_expression "uVar54 != (uVar54 / 5) * 5" identifier != (binary_expression "(uVar54 / 5) * 5" (parenthesized_expression "(uVar54 / 5)" ( (binary_expression "uVar54 / 5" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 7) * 7)" ( (binary_expression "uVar54 != (uVar54 / 7) * 7" identifier != (binary_expression "(uVar54 / 7) * 7" (parenthesized_expression "(uVar54 / 7)" ( (binary_expression "uVar54 / 7" identifier / number_literal) )) * number_literal)) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))" ( (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)" (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb" identifier != (binary_expression "(uVar54 / 0xb) * 0xb" (parenthesized_expression "(uVar54 / 0xb)" ( (binary_expression "uVar54 / 0xb" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0xd) * 0xd)" ( (binary_expression "uVar54 != (uVar54 / 0xd) * 0xd" identifier != (binary_expression "(uVar54 / 0xd) * 0xd" (parenthesized_expression "(uVar54 / 0xd)" ( (binary_expression "uVar54 / 0xd" identifier / number_literal) )) * number_literal)) ))) )) ))) )) && (parenthesized_expression "((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))" ( (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11" identifier != (binary_expression "(uVar54 / 0x11) * 0x11" (parenthesized_expression "(uVar54 / 0x11)" ( (binary_expression "uVar54 / 0x11" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" ( (parenthesized_expression "(uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))" ( (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)" (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13" identifier != (binary_expression "(uVar54 / 0x13) * 0x13" (parenthesized_expression "(uVar54 / 0x13)" ( (binary_expression "uVar54 / 0x13" identifier / number_literal) )) * number_literal)) && (parenthesized_expression "(uVar54 != (uVar54 / 0x17) * 0x17)" ( (binary_expression "uVar54 != (uVar54 / 0x17) * 0x17" identifier != (binary_expression "(uVar54 / 0x17) * 0x17" (parenthesized_expression "(uVar54 / 0x17)" ( (binary_expression "uVar54 / 0x17" identifier / number_literal) )) * number_literal)) ))) )) ))) )) ))) )) && (parenthesized_expression "(uVar54 != (uVar54 / 0x1d) * 0x1d)" ( (binary_expression "uVar54 != (uVar54 / 0x1d) * 0x1d" identifier != (binary_expression "(uVar54 / 0x1d) * 0x1d" (parenthesized_expression "(uVar54 / 0x1d)" ( (binary_expression "uVar54 / 0x1d" identifier / number_literal) )) * number_literal)) ))) )) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" { (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2)" identifier = (call_expression "(**(code **)(iVar37 + -0x7f14))(piVar43,2)" (parenthesized_expression "(**(code **)(iVar37 + -0x7f14))" ( (pointer_expression "**(code **)(iVar37 + -0x7f14)" * (pointer_expression "*(code **)(iVar37 + -0x7f14)" * (cast_expression "(code **)(iVar37 + -0x7f14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7f14)" ( (binary_expression "iVar37 + -0x7f14" identifier + number_literal) ))))) )) (argument_list "(piVar43,2)" ( identifier , number_literal )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" if (parenthesized_expression "(0x1f < uVar54)" ( (binary_expression "0x1f < uVar54" number_literal < identifier) )) (compound_statement "{\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "puVar36 = puVar9 + -0x68;" (assignment_expression "puVar36 = puVar9 + -0x68" identifier = (binary_expression "puVar9 + -0x68" identifier + number_literal)) ;) (expression_statement "uVar55 = 0x1f;" (assignment_expression "uVar55 = 0x1f" identifier = number_literal) ;) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031a28:\n        uVar17 = 3;" statement_identifier : (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" identifier = number_literal) ;)) (do_statement "do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);" do (compound_statement "{\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        }" { (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "uVar53 = uVar55 % uVar17;" (assignment_expression "uVar53 = uVar55 % uVar17" identifier = (binary_expression "uVar55 % uVar17" identifier % identifier)) ;) (if_statement "if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" if (parenthesized_expression "(uVar55 / uVar17 < uVar17)" ( (binary_expression "uVar55 / uVar17 < uVar17" (binary_expression "uVar55 / uVar17" identifier / identifier) < identifier) )) (compound_statement "{\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" { (if_statement "if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" if (parenthesized_expression "(iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0)" ( (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0" (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" (binary_expression "iVar26 * uVar6" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" ( (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20" (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" { (expression_statement "iVar50 = iVar37 + 1;" (assignment_expression "iVar50 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55)" identifier = (call_expression "(uint)((ulonglong)uVar6 * (ulonglong)uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar6 * (ulonglong)uVar55)" ( (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar55" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (goto_statement "goto LAB_00031b4c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 **)(puVar9 + -0x7c) = puVar36;" (assignment_expression "*(undefined1 **)(puVar9 + -0x7c) = puVar36" (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x80) = iVar26;" (assignment_expression "*(int *)(puVar9 + -0x80) = iVar26" (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar9 + -0x84) = uVar54;" (assignment_expression "*(uint *)(puVar9 + -0x84) = uVar54" (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" if (parenthesized_expression "((int)pEVar10 < 10)" ( (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }" { (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" identifier = (call_expression "(**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" (parenthesized_expression "(**(code **)(iVar8 + -0x7c68))" ( (pointer_expression "**(code **)(iVar8 + -0x7c68)" * (pointer_expression "*(code **)(iVar8 + -0x7c68)" * (cast_expression "(code **)(iVar8 + -0x7c68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7c68)" ( (binary_expression "iVar8 + -0x7c68" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,uVar6,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" identifier = (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" else (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" { (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" identifier = (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" ( (pointer_expression "**(code **)(iVar8 + -0x7b80)" * (pointer_expression "*(code **)(iVar8 + -0x7b80)" * (cast_expression "(code **)(iVar8 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b80)" ( (binary_expression "iVar8 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19,pEVar10,uVar6)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" * (cast_expression "(undefined1 **)(puVar9 + -0x7c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7c)" ( (binary_expression "puVar9 + -0x7c" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" identifier = (pointer_expression "*(int *)(puVar9 + -0x80)" * (cast_expression "(int *)(puVar9 + -0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x80)" ( (binary_expression "puVar9 + -0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" identifier = (pointer_expression "*(uint *)(puVar9 + -0x84)" * (cast_expression "(uint *)(puVar9 + -0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x84)" ( (binary_expression "puVar9 + -0x84" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);" (assignment_expression "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + (iVar37 + 0x3fffffff) * 4)" ( (binary_expression "puVar36 + (iVar37 + 0x3fffffff) * 4" identifier + (binary_expression "(iVar37 + 0x3fffffff) * 4" (parenthesized_expression "(iVar37 + 0x3fffffff)" ( (binary_expression "iVar37 + 0x3fffffff" identifier + number_literal) )) * number_literal)) )))) ;) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) })) (expression_statement "uVar17 = uVar17 + 2;" (assignment_expression "uVar17 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (expression_statement "iVar50 = iVar37;" (assignment_expression "iVar50 = iVar37" identifier = identifier) ;) }) while (parenthesized_expression "(uVar53 != 0)" ( (binary_expression "uVar53 != 0" identifier != number_literal) )) ;) (goto_statement "goto LAB_00031a4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" statement_identifier : (expression_statement "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43)" identifier = (call_expression "(**(code **)(iVar8 + -0x7d48))(piVar43)" (parenthesized_expression "(**(code **)(iVar8 + -0x7d48))" ( (pointer_expression "**(code **)(iVar8 + -0x7d48)" * (pointer_expression "*(code **)(iVar8 + -0x7d48)" * (cast_expression "(code **)(iVar8 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7d48)" ( (binary_expression "iVar8 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(piVar43)" ( identifier )))) ;)) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = pEVar40;" (assignment_expression "pEVar27 = pEVar40" identifier = identifier) ;) (goto_statement "goto LAB_00031824;" goto statement_identifier ;) })) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);" statement_identifier : (expression_statement "iVar26 = *(int *)(puVar9 + -0x2c);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar9 + -0x2c)" * (cast_expression "(int *)(puVar9 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x2c)" ( (binary_expression "puVar9 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar26 == *piVar39) {\n    return iVar8;\n  }" if (parenthesized_expression "(iVar26 == *piVar39)" ( (binary_expression "iVar26 == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (labeled_statement "LAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);" statement_identifier : (expression_statement "pcVar51 = *(code **)(iVar37 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar37 + -0x7b70)" identifier = (pointer_expression "*(code **)(iVar37 + -0x7b70)" * (cast_expression "(code **)(iVar37 + -0x7b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7b70)" ( (binary_expression "iVar37 + -0x7b70" identifier + number_literal) ))))) ;)) (expression_statement "uVar44 = 0x31c64;" (assignment_expression "uVar44 = 0x31c64" identifier = number_literal) ;) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" ( (pointer_expression "*pcVar51" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar46 = pcVar51 + 0x6d3d0;" (assignment_expression "pcVar46 = pcVar51 + 0x6d3d0" identifier = (binary_expression "pcVar51 + 0x6d3d0" identifier + number_literal)) ;) (expression_statement "pcVar18 = *(char **)(pcVar51 + 0x65518);" (assignment_expression "pcVar18 = *(char **)(pcVar51 + 0x65518)" identifier = (pointer_expression "*(char **)(pcVar51 + 0x65518)" * (cast_expression "(char **)(pcVar51 + 0x65518)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65518)" ( (binary_expression "pcVar51 + 0x65518" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar9 + -0xa8) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0xa8) = piVar39" (pointer_expression "*(int **)(puVar9 + -0xa8)" * (cast_expression "(int **)(puVar9 + -0xa8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xa8)" ( (binary_expression "puVar9 + -0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xac)" * (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xac)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xac)" ( (binary_expression "puVar9 + -0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar9 + -0xb8) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0xb8) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0xb8)" * (cast_expression "(code **)(puVar9 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xb8)" ( (binary_expression "puVar9 + -0xb8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0xa4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0xa4) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0xa4)" * (cast_expression "(undefined4 *)(puVar9 + -0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xa4)" ( (binary_expression "puVar9 + -0xa4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" { (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x65990);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x65990)" identifier = (pointer_expression "*(code **)(pcVar51 + 0x65990)" * (cast_expression "(code **)(pcVar51 + 0x65990)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar51 + 0x65990)" ( (binary_expression "pcVar51 + 0x65990" identifier + number_literal) ))))) ;) (expression_statement "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);" (assignment_expression "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c)" identifier = (pointer_expression "*(undefined4 *)(pcVar51 + 0x6560c)" * (cast_expression "(undefined4 *)(pcVar51 + 0x6560c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar51 + 0x6560c)" ( (binary_expression "pcVar51 + 0x6560c" identifier + number_literal) ))))) ;) (expression_statement "*pcVar18 = '\x01';" (assignment_expression "*pcVar18 = '\x01'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar46)(uVar44);" (call_expression "(*pcVar46)(uVar44)" (parenthesized_expression "(*pcVar46)" ( (pointer_expression "*pcVar46" * identifier) )) (argument_list "(uVar44)" ( identifier ))) ;) (expression_statement "pcVar46 = *(code **)(puVar9 + -0xb8);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0xb8)" identifier = (pointer_expression "*(code **)(puVar9 + -0xb8)" * (cast_expression "(code **)(puVar9 + -0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xb8)" ( (binary_expression "puVar9 + -0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" identifier = identifier) ;) (if_statement "if ((int)pEVar27 < 0) {\n    pEVar10 = (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    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }" { (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar10 = (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 "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" identifier = (call_expression "(**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7f7c))" ( (pointer_expression "**(code **)(pcVar46 + -0x7f7c)" * (pointer_expression "*(code **)(pcVar46 + -0x7f7c)" * (cast_expression "(code **)(pcVar46 + -0x7f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar46 + -0x7f7c)" ( (binary_expression "pcVar46 + -0x7f7c" identifier + number_literal) ))))) )) (argument_list "(iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar46 + -0x7dc4)" * (cast_expression "(undefined4 *)(pcVar46 + -0x7dc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar46 + -0x7dc4)" ( (binary_expression "pcVar46 + -0x7dc4" identifier + number_literal) )))) , (binary_expression "(int)pEVar10 << 5" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\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    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }" { (expression_statement "iVar8 = -*(int *)(iVar26 + 4);" (assignment_expression "iVar8 = -*(int *)(iVar26 + 4)" identifier = (unary_expression "-*(int *)(iVar26 + 4)" - (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(iVar26 + 4) = iVar8;" (assignment_expression "*(int *)(iVar26 + 4) = iVar8" (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar8;" return identifier ;) (labeled_statement "joined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;" statement_identifier : (if_statement "if (iVar8 != 0) goto LAB_00030180;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;))) (expression_statement "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" ( (binary_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" & (field_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar5 + 0xffffffcc)" ( (binary_expression "(int)pEVar5 + 0xffffffcc" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;" 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)) )) (goto_statement "goto LAB_00030180;" goto statement_identifier ;)) (expression_statement "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;" (assignment_expression "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (field_expression "iVar8._0_2_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" ( (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;" (assignment_expression "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (field_expression "iVar8._2_2_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" ( (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" & (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))" ( (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar7 + 0xffffffcc)" ( (binary_expression "(int)pEVar7 + 0xffffffcc" (cast_expression "(int)pEVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)))) ;) (goto_statement "goto joined_r0x00030154;" goto statement_identifier ;) (labeled_statement "LAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" statement_identifier : (if_statement "if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" if (parenthesized_expression "((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37))" ( (binary_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" (parenthesized_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0)" ( (binary_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0" (parenthesized_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1)" ( (binary_expression "(undefined1  [52])*in_t3 & (undefined1  [52])0x1" (binary_expression "(undefined1  [52])*in_t3" (parenthesized_expression "(undefined1  [52])" ( (subscript_expression "undefined1  [52]" identifier [ number_literal ]) )) * identifier) & (cast_expression "(undefined1  [52])0x1" ( (type_descriptor "undefined1  [52]" type_identifier (abstract_array_declarator "[52]" [ number_literal ])) ) number_literal)) )) == (cast_expression "(undefined1  [52])0x0" ( (type_descriptor "undefined1  [52]" type_identifier (abstract_array_declarator "[52]" [ number_literal ])) ) number_literal)) )) || (parenthesized_expression "(iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" ( (comma_expression "iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._0_1_ = param_2->e_ident_class" (field_expression "iVar37._0_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_class" identifier -> field_identifier)) , (comma_expression "iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._1_1_ = param_2->e_ident_data" (field_expression "iVar37._1_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_data" identifier -> field_identifier)) , (comma_expression "iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._2_1_ = param_2->e_ident_version" (field_expression "iVar37._2_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_version" identifier -> field_identifier)) , (comma_expression "iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._3_1_ = param_2->e_ident_osabi" (field_expression "iVar37._3_1_" identifier . field_identifier) = (field_expression "param_2->e_ident_osabi" identifier -> field_identifier)) , (binary_expression "-1 < iVar37" number_literal < identifier))))) ))) )) (compound_statement "{\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }" { (if_statement "if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" if (parenthesized_expression "(*param_1 < (int)pEVar5)" ( (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" { (labeled_statement "LAB_00030268:\n      pEVar27 = pEVar5;" statement_identifier : (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\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 "{\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }" { (labeled_statement "LAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" identifier = (cast_expression "(undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (expression_statement "pEVar30 = (Elf32_Ehdr *)param_1[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)param_1[2]" identifier = (cast_expression "(Elf32_Ehdr *)param_1[2]" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)unaff_s5;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)unaff_s5" identifier = (pointer_expression "*(Elf32_Ehdr **)unaff_s5" * (cast_expression "(Elf32_Ehdr **)unaff_s5" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar24 = pEVar30;" (assignment_expression "pEVar24 = pEVar30" identifier = identifier) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (expression_statement "pEVar7 = unaff_s5;" (assignment_expression "pEVar7 = unaff_s5" identifier = identifier) ;) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" if (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" { (do_statement "do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" do (compound_statement "{\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        }" { (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar24" * (cast_expression "(Elf32_Ehdr **)pEVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar7->e_ident_class" * (cast_expression "(Elf32_Ehdr **)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier))))) ;) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar24->e_ident_class" & (field_expression "pEVar24->e_ident_class" identifier -> field_identifier)))) ;) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" identifier = (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar7->e_ident_class" & (field_expression "pEVar7->e_ident_class" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" ( (binary_expression "puVar9 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar5 * 4 + -4)" ( (binary_expression "(int)pEVar5 * 4 + -4" (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )))) ;) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" identifier = (cast_expression "(Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" ( (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4" (field_expression "pEVar30->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)&pEVar5[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) * number_literal)) + number_literal) )))) ;) })) (expression_statement "*(Elf32_Ehdr **)pEVar30 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar30 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar30" * (cast_expression "(Elf32_Ehdr **)pEVar30" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) }) (else_clause "else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" else (compound_statement "{\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" { (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\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      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }" { (expression_statement "param_2 = *(Elf32_Ehdr **)(param_4 + 8);" (assignment_expression "param_2 = *(Elf32_Ehdr **)(param_4 + 8)" identifier = (pointer_expression "*(Elf32_Ehdr **)(param_4 + 8)" * (cast_expression "(Elf32_Ehdr **)(param_4 + 8)" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "pEVar27 = param_2;" (assignment_expression "pEVar27 = param_2" identifier = identifier) ;) (expression_statement "pEVar30 = unaff_s5;" (assignment_expression "pEVar30 = unaff_s5" identifier = identifier) ;) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" identifier = identifier) ;) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" identifier = (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" ( (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" * (cast_expression "(code *)PTR___gmpn_sub_n_00097514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" { (labeled_statement "LAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" statement_identifier : (if_statement "if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" if (parenthesized_expression "((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5))" ( (binary_expression "(param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)" (parenthesized_expression "(param_2 == unaff_s5)" ( (binary_expression "param_2 == unaff_s5" identifier == identifier) )) || (parenthesized_expression "((int)pEVar10 <= (int)pEVar5)" ( (binary_expression "(int)pEVar10 <= (int)pEVar5" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;))) (expression_statement "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;" (assignment_expression "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" identifier = (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (do_statement "do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);" do (compound_statement "{\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        }" { (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" identifier = (pointer_expression "*(undefined4 *)pbVar15" * (cast_expression "(undefined4 *)pbVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar15 != (byte *)in_t2)" ( (binary_expression "pbVar15 != (byte *)in_t2" identifier != (cast_expression "(byte *)in_t2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) }) (else_clause "else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" else (compound_statement "{\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" { (if_statement "if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" if (parenthesized_expression "((int)pEVar5 < (int)pEVar10)" ( (binary_expression "(int)pEVar5 < (int)pEVar10" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" { (expression_statement "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" identifier = (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" ( (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)pbVar14;" (assignment_expression "iVar8 = *(int *)pbVar14" identifier = (pointer_expression "*(int *)pbVar14" * (cast_expression "(int *)pbVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -1)" ( (binary_expression "iVar8 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (while_statement "while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" while (parenthesized_expression "(pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0)" ( (comma_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0" (assignment_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar5->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar5->e_ident_magic_str" identifier -> field_identifier))) , (binary_expression "iVar8 == 0" identifier == number_literal)) )) (compound_statement "{\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" { (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" identifier = (binary_expression "pbVar15 + 4" identifier + number_literal)) ;) (if_statement "if (pEVar10 == pEVar5) goto LAB_00030390;" if (parenthesized_expression "(pEVar10 == pEVar5)" ( (binary_expression "pEVar10 == pEVar5" identifier == identifier) )) (goto_statement "goto LAB_00030390;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pbVar14 + 4);" (assignment_expression "iVar8 = *(int *)(pbVar14 + 4)" identifier = (pointer_expression "*(int *)(pbVar14 + 4)" * (cast_expression "(int *)(pbVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 4)" ( (binary_expression "pbVar14 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -1)" ( (binary_expression "iVar8 + -1" identifier + number_literal) )))) ;) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" * (cast_expression "(Elf32_Ehdr **)pbVar15" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000303e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00030390:\n        iVar26 = *(int *)pcVar18;" statement_identifier : (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" identifier = identifier) ;) }))) (while_statement "while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" while (parenthesized_expression "(pEVar5 = pEVar16, iVar26 == 0)" ( (comma_expression "pEVar5 = pEVar16, iVar26 == 0" (assignment_expression "pEVar5 = pEVar16" identifier = identifier) , (binary_expression "iVar26 == 0" identifier == number_literal)) )) (compound_statement "{\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" { (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5[-1].e_shstrndx" & (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;" if (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030250;" goto statement_identifier ;)) (expression_statement "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;" (assignment_expression "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum" (field_expression "iVar26._0_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_phnum" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;" (assignment_expression "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize" (field_expression "iVar26._2_2_" identifier . field_identifier) = (field_expression "in_t1[-0xffffffff00000001].e_shentsize" (subscript_expression "in_t1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;" (assignment_expression "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&in_t1[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in_t1[-1].e_shnum" & (field_expression "in_t1[-1].e_shnum" (subscript_expression "in_t1[-1]" identifier [ number_literal ]) . field_identifier)))) ;) })) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" identifier = identifier) ;) (if_statement "if (*param_1 < (int)pEVar5) goto LAB_00030268;" if (parenthesized_expression "(*param_1 < (int)pEVar5)" ( (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00030268;" goto statement_identifier ;)) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pEVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000301b4;" goto statement_identifier ;) })) (labeled_statement "LAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" statement_identifier : (if_statement "if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" if (parenthesized_expression "(*param_1 < 0)" ( (binary_expression "*param_1 < 0" (pointer_expression "*param_1" * identifier) < number_literal) )) (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\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)) ;) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" ( (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" * (cast_expression "(code *)PTR___gmpz_realloc_000975bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      param_1[1] = 0;\n    }" else (compound_statement "{\n      param_1[1] = 0;\n    }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) })))) })))) (expression_statement "pEVar5 = local_30;" (assignment_expression "pEVar5 = local_30" identifier = identifier) ;) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) (expression_statement "puVar9 = puVar47;" (assignment_expression "puVar9 = puVar47" identifier = identifier) ;) (if_statement "if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" if (parenthesized_expression "(local_30 != (Elf32_Ehdr *)0x0)" ( (binary_expression "local_30 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" identifier = identifier) ;) })) (goto_statement "goto LAB_00030200;" goto statement_identifier ;) (labeled_statement "LAB_00031bcc:\n  iVar37 = iVar37 + -1;" statement_identifier : (expression_statement "iVar37 = iVar37 + -1;" (assignment_expression "iVar37 = iVar37 + -1" identifier = (binary_expression "iVar37 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar37 == -1) goto code_r0x00031bd8;" if (parenthesized_expression "(iVar37 == -1)" ( (binary_expression "iVar37 == -1" identifier == number_literal) )) (goto_statement "goto code_r0x00031bd8;" goto statement_identifier ;)) (expression_statement "uVar17 = *puVar23;" (assignment_expression "uVar17 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (if_statement "if (uVar17 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 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 "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" identifier = (binary_expression "puVar23 + -1" identifier + number_literal)) ;) (if_statement "if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" if (parenthesized_expression "(uVar6 % uVar17 == 0)" ( (binary_expression "uVar6 % uVar17 == 0" (binary_expression "uVar6 % uVar17" identifier % identifier) == number_literal) )) (compound_statement "{\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" { (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" identifier = identifier) ;) (expression_statement "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);" (assignment_expression "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19)" identifier = (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" ( (pointer_expression "**(code **)(iVar8 + -0x7b80)" * (pointer_expression "*(code **)(iVar8 + -0x7b80)" * (cast_expression "(code **)(iVar8 + -0x7b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7b80)" ( (binary_expression "iVar8 + -0x7b80" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" identifier = (pointer_expression "*(int *)(puVar9 + -0x90)" * (cast_expression "(int *)(puVar9 + -0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x90)" ( (binary_expression "puVar9 + -0x90" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0) goto LAB_00031824;" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00031824;" goto statement_identifier ;)) (expression_statement "pEVar27 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x81" identifier = (cast_expression "(Elf32_Ehdr *)0x81" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4" identifier = (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" * (cast_expression "(int *)(iVar37 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + -0x7fd4)" ( (binary_expression "iVar37 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c20))" ( (pointer_expression "**(code **)(iVar37 + -0x7c20)" * (pointer_expression "*(code **)(iVar37 + -0x7c20)" * (cast_expression "(code **)(iVar37 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + -0x7c20)" ( (binary_expression "iVar37 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" ( identifier , number_literal , (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" * (cast_expression "(int *)(iVar37 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + -0x7fd4)" ( (binary_expression "iVar37 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00031c58;" goto statement_identifier ;) })) (goto_statement "goto LAB_00031bcc;" goto statement_identifier ;) (labeled_statement "code_r0x00031bd8:\n  iVar50 = 1;" statement_identifier : (expression_statement "iVar50 = 1;" (assignment_expression "iVar50 = 1" identifier = number_literal) ;)) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar55;" (assignment_expression "uVar6 = uVar55" identifier = identifier) ;) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" statement_identifier : (expression_statement "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" (assignment_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55" (pointer_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68)" * (cast_expression "(uint *)(puVar9 + iVar37 * 4 + -0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + iVar37 * 4 + -0x68)" ( (binary_expression "puVar9 + iVar37 * 4 + -0x68" (binary_expression "puVar9 + iVar37 * 4" identifier + (binary_expression "iVar37 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;)) (labeled_statement "LAB_00031a4c:\n  uVar17 = uVar55 + 2;" statement_identifier : (expression_statement "uVar17 = uVar55 + 2;" (assignment_expression "uVar17 = uVar55 + 2" identifier = (binary_expression "uVar55 + 2" identifier + number_literal)) ;)) (expression_statement "iVar26 = (uint)(uVar17 < uVar55) + iVar26;" (assignment_expression "iVar26 = (uint)(uVar17 < uVar55) + iVar26" identifier = (binary_expression "(uint)(uVar17 < uVar55) + iVar26" (call_expression "(uint)(uVar17 < uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar55)" ( (binary_expression "uVar17 < uVar55" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar55 = uVar17;" (assignment_expression "uVar55 = uVar17" identifier = identifier) ;) (expression_statement "iVar37 = iVar50;" (assignment_expression "iVar37 = iVar50" identifier = identifier) ;) (if_statement "if (uVar54 <= uVar17) goto LAB_00031a64;" if (parenthesized_expression "(uVar54 <= uVar17)" ( (binary_expression "uVar54 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_00031a64;" goto statement_identifier ;)) (goto_statement "goto LAB_00031a28;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (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 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 (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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)) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (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 * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 *))) ) (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)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + 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 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) ))))) ;) }))) (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 *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (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 *)) ) (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 (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return 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 (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 = (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 * (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 { (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) ))))) ;) (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + 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)) ;) (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) ))))) ;) (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 { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_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 IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < 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) ))))) ;)) }) (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) <= (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * (cast_expression ( (type_descriptor TYPE) ) (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 IDENT + LIT) )))) ;) (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 ( 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( 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 *)) ) (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (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) ;) (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 (cast_expression ( (type_descriptor TYPE) ) 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) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + 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 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 = (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 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) ))))) ;) (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 * (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) )))) = 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) ))))) ;) (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 *)) ) 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 (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 = (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 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 (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)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (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) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 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 = (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 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 = (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 *)) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (return_statement return 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 = (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) )))) = (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 *)) ) (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 = (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) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) ))) <= IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) ^ LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression IDENT <= IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) < LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (field_expression IDENT -> field_identifier) [ (binary_expression (parenthesized_expression ( (binary_expression (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * LIT)) + LIT) )))) == LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)) * LIT)) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (parenthesized_expression ( (binary_expression 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 (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)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)) * LIT)) + LIT) )))) == LIT) )))) ))) + (cast_expression ( (type_descriptor TYPE) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & (field_expression IDENT -> field_identifier))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier)) * LIT)) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) + LIT) )))) = IDENT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & (field_expression IDENT -> field_identifier))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) * LIT)) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / IDENT) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (field_expression IDENT . field_identifier) = (field_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) )) -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) )) -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) )) -> field_identifier)))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) * IDENT) & (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) )) == (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) , (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) , (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) , (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) , (binary_expression LIT < IDENT))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 { (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) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + 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 * (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 { (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) ;) })) }) (else_clause else (compound_statement { (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *))) ) IDENT)) = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == 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) )))) ;) (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 (field_expression IDENT . field_identifier) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (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) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int __gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" (primitive_type "int") (function_declarator "__gmpz_powm_sec(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" (identifier "__gmpz_powm_sec") (parameter_list "(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Elf32_Ehdr *param_2" (type_identifier "Elf32_Ehdr") (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 "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined *puVar4;\n  Elf32_Ehdr *pEVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  Elf32_Ehdr *pEVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  Elf32_Ehdr *pEVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint *puVar19;\n  undefined1 *puVar20;\n  Elf32_Ehdr *pEVar21;\n  undefined4 uVar22;\n  uint *puVar23;\n  Elf32_Ehdr *pEVar24;\n  undefined4 uVar25;\n  int iVar26;\n  Elf32_Ehdr *pEVar27;\n  Elf32_Ehdr *pEVar28;\n  undefined4 uVar29;\n  Elf32_Ehdr *pEVar30;\n  undefined4 *puVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  Elf32_Ehdr *pEVar34;\n  undefined4 *puVar35;\n  Elf32_Ehdr *in_t1;\n  char *in_t2;\n  Elf32_Ehdr *in_t3;\n  undefined1 *puVar36;\n  Elf32_Ehdr *unaff_s0;\n  int iVar37;\n  word *pwVar38;\n  int *piVar39;\n  Elf32_Ehdr *pEVar40;\n  Elf32_Ehdr *pEVar41;\n  Elf32_Ehdr *pEVar42;\n  int *piVar43;\n  Elf32_Ehdr *unaff_s5;\n  undefined4 uVar44;\n  undefined *puVar45;\n  code *pcVar46;\n  undefined1 *puVar47;\n  undefined1 *puVar48;\n  undefined1 *puVar49;\n  int iVar50;\n  code *pcVar51;\n  code *pcVar52;\n  uint uVar53;\n  uint uVar54;\n  uint uVar55;\n  undefined8 uVar56;\n  undefined1 auStack_68 [32];\n  Elf32_Ehdr *local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00097540;\n  puVar9 = auStack_68;\n  puVar47 = auStack_68;\n  puVar49 = auStack_68;\n  puVar36 = auStack_68;\n  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_00097540;\n  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;\n  if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }\n  pEVar40 = param_3;\n  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;\n  do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);\n  if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }\n  param_1[1] = uVar6;\n  *(undefined4 *)param_1[2] = 1;\nLAB_00030200:\n  iVar8 = *(int *)puVar4;\n  if (local_2c == iVar8) {\n    return iVar8;\n  }\n  pcVar51 = FUN_00030430;\n  puVar45 = PTR___stack_chk_fail_000974d0;\n  (*(code *)PTR___stack_chk_fail_000974d0)();\n  *(undefined **)(puVar9 + -0x24) = puVar4;\n  piVar39 = *(int **)(puVar45 + 0x67110);\n  puVar35 = *(undefined4 **)(puVar9 + 0x10);\n  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;\n  *(int *)(puVar9 + -0x1c) = param_4;\n  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;\n  *(code **)(puVar9 + -4) = pcVar51;\n  *(undefined1 **)(puVar9 + -8) = auStack_68;\n  *(int **)(puVar9 + -0xc) = param_1;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;\n  *(undefined4 *)(puVar9 + -0x30) = 0;\n  uVar44 = *(undefined4 *)(puVar9 + 0x14);\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  pEVar16 = pEVar5;\n  pEVar30 = pEVar27;\n  if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }\n  if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }\n  pcVar51 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = FUN_000306c8;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6e978;\n  puVar36 = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;\n  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;\n  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);\n  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);\n  *(undefined1 **)(puVar9 + -0x60) = puVar49;\n  *(int **)(puVar9 + -100) = param_1;\n  *(undefined4 *)(puVar9 + -0x6c) = uVar44;\n  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;\n  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;\n  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;\n  *(code **)(puVar9 + -0x5c) = pcVar52;\n  *(int **)(puVar9 + -0x7c) = piVar39;\n  *(code **)(puVar9 + -0x98) = pcVar46;\n  *(undefined4 *)(puVar9 + -0x88) = 0;\n  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);\n  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);\n  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;\n  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;\n  pcVar51 = *(code **)(pcVar46 + -0x7d50);\n  if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }\n  if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }\n  *(undefined1 **)(puVar36 + 0x14) = puVar49;\n  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;\n  pEVar28 = pEVar16;\n  pEVar34 = pEVar40;\n  FUN_00030430(pEVar27);\n  iVar8 = *(int *)(puVar9 + -0x98);\n  pEVar41 = pEVar40;\n  if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }\n  piVar39 = *(int **)(puVar9 + -0x88);\n  if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }\n  iVar50._0_1_ = pEVar42->e_ident_magic_num;\n  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];\n  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];\n  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];\n  if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }\n  pcVar46 = *(code **)(iVar8 + -0x7b70);\n  pcVar52 = __gmpz_powm_ui;\n  (*pcVar46)();\n  pcVar51 = pcVar46 + 0x6e770;\n  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);\n  puVar20 = puVar36 + -0xa0;\n  puVar49 = puVar36 + -0xa0;\n  puVar48 = puVar36 + -0xa0;\n  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;\n  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;\n  *(code **)(puVar36 + -4) = pcVar52;\n  *(undefined4 **)(puVar36 + -0x58) = puVar35;\n  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;\n  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;\n  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;\n  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;\n  *(code **)(puVar36 + -0x88) = pcVar51;\n  *(int **)(puVar36 + -0x54) = piVar39;\n  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;\n  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;\n  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;\n  pEVar40 = pEVar30;\n  if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }\n  if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar51 + -0x7b70);\n  uVar44 = 0x3153c;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6db00;\n  puVar9 = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;\n  piVar12 = *(int **)(pcVar51 + 0x66000);\n  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;\n  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;\n  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;\n  *(undefined4 *)(puVar49 + -4) = uVar44;\n  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;\n  *(code **)(puVar49 + -0x28) = pcVar46;\n  *(int *)(puVar49 + -0x1c) = *piVar12;\n  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }\n  if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }\n  pcVar51 = *(code **)(pcVar46 + -0x7b70);\n  pcVar52 = __gmpz_probab_prime_p;\n  (*pcVar51)();\n  pcVar46 = *(code **)(pcVar51 + 0x659a8);\n  *(int **)(puVar9 + -0x24) = piVar39;\n  *(int **)(puVar9 + -0x20) = piVar12;\n  piVar39 = *(int **)(pcVar51 + 0x65da0);\n  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;\n  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;\n  pEVar27 = (Elf32_Ehdr *)0xf4240;\n  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;\n  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;\n  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;\n  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;\n  *(code **)(puVar9 + -4) = pcVar52;\n  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;\n  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;\n  *(int *)(puVar9 + -0x2c) = *piVar39;\n  iVar8 = (*pcVar46)();\n  puVar19 = (uint *)piVar43[2];\n  iVar37 = *(int *)(puVar9 + -0x90);\n  pEVar10 = (Elf32_Ehdr *)piVar43[1];\n  uVar6 = *puVar19;\n  if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }\n  if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }\n  iVar8 = 0;\nLAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);\n  if (iVar26 == *piVar39) {\n    return iVar8;\n  }\nLAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);\n  uVar44 = 0x31c64;\n  (*pcVar51)();\n  pcVar46 = pcVar51 + 0x6d3d0;\n  pcVar18 = *(char **)(pcVar51 + 0x65518);\n  *(int **)(puVar9 + -0xa8) = piVar39;\n  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;\n  *(code **)(puVar9 + -0xb8) = pcVar46;\n  *(undefined4 *)(puVar9 + -0xa4) = uVar44;\n  if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }\n  pEVar10 = pEVar27;\n  if ((int)pEVar27 < 0) {\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }\n  iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);\n  if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }\n  return iVar8;\njoined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;\n  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);\n  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;\n  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;\n  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;\n  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;\n  goto joined_r0x00030154;\nLAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }\n  pEVar5 = local_30;\n  param_3 = pEVar30;\n  puVar9 = puVar47;\n  if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }\n  goto LAB_00030200;\nLAB_00031bcc:\n  iVar37 = iVar37 + -1;\n  if (iVar37 == -1) goto code_r0x00031bd8;\n  uVar17 = *puVar23;\n  if (uVar17 == 0) {\n    trap(7);\n  }\n  puVar23 = puVar23 + -1;\n  if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }\n  goto LAB_00031bcc;\ncode_r0x00031bd8:\n  iVar50 = 1;\n  iVar37 = 0;\n  uVar6 = uVar55;\nLAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;\nLAB_00031a4c:\n  uVar17 = uVar55 + 2;\n  iVar26 = (uint)(uVar17 < uVar55) + iVar26;\n  uVar55 = uVar17;\n  iVar37 = iVar50;\n  if (uVar54 <= uVar17) goto LAB_00031a64;\n  goto LAB_00031a28;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "Elf32_Ehdr *pEVar3;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar3" (* "*") (identifier "pEVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "Elf32_Ehdr *pEVar5;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar5" (* "*") (identifier "pEVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "Elf32_Ehdr *pEVar7;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar7" (* "*") (identifier "pEVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "Elf32_Ehdr *pEVar10;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar10" (* "*") (identifier "pEVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "Elf32_Ehdr *pEVar16;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar16" (* "*") (identifier "pEVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "Elf32_Ehdr *pEVar21;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar21" (* "*") (identifier "pEVar21")) (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "Elf32_Ehdr *pEVar24;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar24" (* "*") (identifier "pEVar24")) (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "Elf32_Ehdr *pEVar27;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar27" (* "*") (identifier "pEVar27")) (; ";")) (declaration "Elf32_Ehdr *pEVar28;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar28" (* "*") (identifier "pEVar28")) (; ";")) (declaration "undefined4 uVar29;" (type_identifier "undefined4") (identifier "uVar29") (; ";")) (declaration "Elf32_Ehdr *pEVar30;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar30" (* "*") (identifier "pEVar30")) (; ";")) (declaration "undefined4 *puVar31;" (type_identifier "undefined4") (pointer_declarator "*puVar31" (* "*") (identifier "puVar31")) (; ";")) (declaration "undefined4 uVar32;" (type_identifier "undefined4") (identifier "uVar32") (; ";")) (declaration "undefined4 uVar33;" (type_identifier "undefined4") (identifier "uVar33") (; ";")) (declaration "Elf32_Ehdr *pEVar34;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar34" (* "*") (identifier "pEVar34")) (; ";")) (declaration "undefined4 *puVar35;" (type_identifier "undefined4") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "Elf32_Ehdr *in_t1;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_t1" (* "*") (identifier "in_t1")) (; ";")) (declaration "char *in_t2;" (primitive_type "char") (pointer_declarator "*in_t2" (* "*") (identifier "in_t2")) (; ";")) (declaration "Elf32_Ehdr *in_t3;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_t3" (* "*") (identifier "in_t3")) (; ";")) (declaration "undefined1 *puVar36;" (type_identifier "undefined1") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "Elf32_Ehdr *unaff_s0;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int iVar37;" (primitive_type "int") (identifier "iVar37") (; ";")) (declaration "word *pwVar38;" (type_identifier "word") (pointer_declarator "*pwVar38" (* "*") (identifier "pwVar38")) (; ";")) (declaration "int *piVar39;" (primitive_type "int") (pointer_declarator "*piVar39" (* "*") (identifier "piVar39")) (; ";")) (declaration "Elf32_Ehdr *pEVar40;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar40" (* "*") (identifier "pEVar40")) (; ";")) (declaration "Elf32_Ehdr *pEVar41;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar41" (* "*") (identifier "pEVar41")) (; ";")) (declaration "Elf32_Ehdr *pEVar42;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar42" (* "*") (identifier "pEVar42")) (; ";")) (declaration "int *piVar43;" (primitive_type "int") (pointer_declarator "*piVar43" (* "*") (identifier "piVar43")) (; ";")) (declaration "Elf32_Ehdr *unaff_s5;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined4 uVar44;" (type_identifier "undefined4") (identifier "uVar44") (; ";")) (declaration "undefined *puVar45;" (type_identifier "undefined") (pointer_declarator "*puVar45" (* "*") (identifier "puVar45")) (; ";")) (declaration "code *pcVar46;" (type_identifier "code") (pointer_declarator "*pcVar46" (* "*") (identifier "pcVar46")) (; ";")) (declaration "undefined1 *puVar47;" (type_identifier "undefined1") (pointer_declarator "*puVar47" (* "*") (identifier "puVar47")) (; ";")) (declaration "undefined1 *puVar48;" (type_identifier "undefined1") (pointer_declarator "*puVar48" (* "*") (identifier "puVar48")) (; ";")) (declaration "undefined1 *puVar49;" (type_identifier "undefined1") (pointer_declarator "*puVar49" (* "*") (identifier "puVar49")) (; ";")) (declaration "int iVar50;" (primitive_type "int") (identifier "iVar50") (; ";")) (declaration "code *pcVar51;" (type_identifier "code") (pointer_declarator "*pcVar51" (* "*") (identifier "pcVar51")) (; ";")) (declaration "code *pcVar52;" (type_identifier "code") (pointer_declarator "*pcVar52" (* "*") (identifier "pcVar52")) (; ";")) (declaration "uint uVar53;" (type_identifier "uint") (identifier "uVar53") (; ";")) (declaration "uint uVar54;" (type_identifier "uint") (identifier "uVar54") (; ";")) (declaration "uint uVar55;" (type_identifier "uint") (identifier "uVar55") (; ";")) (declaration "undefined8 uVar56;" (type_identifier "undefined8") (identifier "uVar56") (; ";")) (declaration "undefined1 auStack_68 [32];" (type_identifier "undefined1") (array_declarator "auStack_68 [32]" (identifier "auStack_68") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "Elf32_Ehdr *local_30;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_00097540;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00097540" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_00097540")) (; ";")) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" (identifier "puVar9") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "puVar47 = auStack_68;" (assignment_expression "puVar47 = auStack_68" (identifier "puVar47") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" (identifier "puVar49") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" (identifier "puVar36") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(param_4 + 4)" (identifier "pEVar5") (= "=") (pointer_expression "*(Elf32_Ehdr **)(param_4 + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(param_4 + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00097540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00097540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00097540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00097540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00097540")))) (; ";")) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar5" (identifier "pEVar10") (= "=") (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"))))) (; ";")) (if_statement "if (-1 < (int)pEVar5) {\n    pEVar10 = pEVar5;\n  }" (if "if") (parenthesized_expression "(-1 < (int)pEVar5)" (( "(") (binary_expression "-1 < (int)pEVar5" (number_literal "-1") (< "<") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) () ")")) (compound_statement "{\n    pEVar10 = pEVar5;\n  }" ({ "{") (expression_statement "pEVar10 = pEVar5;" (assignment_expression "pEVar10 = pEVar5" (identifier "pEVar10") (= "=") (identifier "pEVar5")) (; ";")) (} "}"))) (expression_statement "pEVar40 = param_3;" (assignment_expression "pEVar40 = param_3" (identifier "pEVar40") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;" (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"))) () ")")) (goto_statement "goto LAB_00030070;" (goto "goto") (statement_identifier "LAB_00030070") (; ";"))) (do_statement "do {\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  } while (pEVar27 != (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n    do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);\n    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n    pEVar16 = pEVar10;\n    if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }\n  }" ({ "{") (do_statement "do {\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    } while (pEVar5 == (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n      (*(code *)PTR___gmp_divide_by_zero_000975dc)();\nLAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);\n      uVar6 = *puVar19;\n      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);\n    }" ({ "{") (expression_statement "(*(code *)PTR___gmp_divide_by_zero_000975dc)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_000975dc)" (( "(") (pointer_expression "*(code *)PTR___gmp_divide_by_zero_000975dc" (* "*") (cast_expression "(code *)PTR___gmp_divide_by_zero_000975dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_divide_by_zero_000975dc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00030070:\n      puVar19 = *(uint **)(param_4 + 8);" (statement_identifier "LAB_00030070") (: ":") (expression_statement "puVar19 = *(uint **)(param_4 + 8);" (assignment_expression "puVar19 = *(uint **)(param_4 + 8)" (identifier "puVar19") (= "=") (pointer_expression "*(uint **)(param_4 + 8)" (* "*") (cast_expression "(uint **)(param_4 + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" (identifier "uVar6") (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (expression_statement "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(uVar6 & 1)" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)(uVar6 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (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"))) () ")")) (; ";")) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (if_statement "if (0 < (int)pEVar27) {\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" (if "if") (parenthesized_expression "(0 < (int)pEVar27)" (( "(") (binary_expression "0 < (int)pEVar27" (number_literal "0") (< "<") (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27"))) () ")")) (compound_statement "{\n      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;\n      pEVar30 = pEVar7;\n      if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }\n      iVar37 = (int)pEVar27 << 5;\n      local_30 = (Elf32_Ehdr *)0x0;\n      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);\n      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;\n      if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }\n      in_t2 = (char *)((int)pEVar10 * 4);\n      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;\n      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;\n      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;\n      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;\n      *(uint **)(puVar47 + 0x14) = puVar19;\n      *(int *)(puVar47 + 0x10) = iVar37;\n      pEVar40 = in_t3;\n      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);\n      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);\n      iVar8 = *(int *)pcVar18;\n      pEVar7 = in_t1;\n      pEVar5 = pEVar10;\n      goto joined_r0x00030154;\n    }" ({ "{") (expression_statement "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class" (identifier "pEVar7") (= "=") (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&param_2->e_ident_class" (& "&") (field_expression "param_2->e_ident_class" (identifier "param_2") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar30 = pEVar7;" (assignment_expression "pEVar30 = pEVar7" (identifier "pEVar30") (= "=") (identifier "pEVar7")) (; ";")) (if_statement "if ((int)pEVar7 < 0) {\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" (if "if") (parenthesized_expression "((int)pEVar7 < 0)" (( "(") (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;\n      }" ({ "{") (expression_statement "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar30 = (Elf32_Ehdr *)-(int)pEVar7" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar7" (- "-") (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7"))))) (; ";")) (} "}"))) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" (if "if") (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" (identifier "pEVar7") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        param_1[1] = 0;\n        puVar9 = auStack_68;\n        goto LAB_00030200;\n      }" ({ "{") (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = auStack_68;" (assignment_expression "puVar9 = auStack_68" (identifier "puVar9") (= "=") (identifier "auStack_68")) (; ";")) (goto_statement "goto LAB_00030200;" (goto "goto") (statement_identifier "LAB_00030200") (; ";")) (} "}"))) (expression_statement "iVar37 = (int)pEVar27 << 5;" (assignment_expression "iVar37 = (int)pEVar27 << 5" (identifier "iVar37") (= "=") (binary_expression "(int)pEVar27 << 5" (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27")) (<< "<<") (number_literal "5"))) (; ";")) (expression_statement "local_30 = (Elf32_Ehdr *)0x0;" (assignment_expression "local_30 = (Elf32_Ehdr *)0x0" (identifier "local_30") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_itch_00097538)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sec_powm_itch_00097538" (* "*") (cast_expression "(code *)PTR___gmpn_sec_powm_itch_00097538" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sec_powm_itch_00097538"))) () ")")) (argument_list "(pEVar30,iVar37,pEVar10)" (( "(") (identifier "pEVar30") (, ",") (identifier "iVar37") (, ",") (identifier "pEVar10") () ")")))) (; ";")) (expression_statement "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;" (assignment_expression "uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" (identifier "uVar6") (= "=") (binary_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4" (cast_expression "(int)(pEVar10->e_ident_magic_str + iVar8 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar10->e_ident_magic_str + iVar8 + -1)" (( "(") (binary_expression "pEVar10->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar10->e_ident_magic_str + iVar8" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-1")) () ")"))) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar6 < 0x7f01) {\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }\n      else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" (if "if") (parenthesized_expression "(uVar6 < 0x7f01)" (( "(") (binary_expression "uVar6 < 0x7f01" (identifier "uVar6") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar8 = -(uVar6 + 7 & 0xfffffff8);\n        puVar47 = auStack_68 + iVar8;\n        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);\n      }" ({ "{") (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(uVar6 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" (identifier "uVar6") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar47 = auStack_68 + iVar8;" (assignment_expression "puVar47 = auStack_68 + iVar8" (identifier "puVar47") (= "=") (binary_expression "auStack_68 + iVar8" (identifier "auStack_68") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" (identifier "unaff_s5") (= "=") (cast_expression "(Elf32_Ehdr *)(&stack0xffffffb8 + iVar8)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0xffffffb8 + iVar8)" (( "(") (binary_expression "&stack0xffffffb8 + iVar8" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" (else "else") (compound_statement "{\n        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);\n      }" ({ "{") (expression_statement "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);" (assignment_expression "unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (identifier "unaff_s5") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_000972f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_000972f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "in_t2 = (char *)((int)pEVar10 * 4);" (assignment_expression "in_t2 = (char *)((int)pEVar10 * 4)" (identifier "in_t2") (= "=") (cast_expression "(char *)((int)pEVar10 * 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar10 * 4)" (( "(") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;" (assignment_expression "in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" (identifier "in_t3") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_abiversion" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar40->e_ident_abiversion" (& "&") (field_expression "pEVar40->e_ident_abiversion" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_abiversion")))))) (; ";")) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)&param_2->e_ident_abiversion" (* "*") (cast_expression "(Elf32_Ehdr **)&param_2->e_ident_abiversion" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&param_2->e_ident_abiversion" (& "&") (field_expression "param_2->e_ident_abiversion" (identifier "param_2") (-> "->") (field_identifier "e_ident_abiversion")))))) (; ";")) (expression_statement "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (identifier "in_t1") (= "=") (cast_expression "(Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (( "(") (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "unaff_s5->e_ident_magic_str" (identifier "unaff_s5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar47 + 0x1c)" (( "(") (binary_expression "puVar47 + 0x1c" (identifier "puVar47") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "in_t1")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar47 + 0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar47 + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar47 + 0x18)" (( "(") (binary_expression "puVar47 + 0x18" (identifier "puVar47") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "*(uint **)(puVar47 + 0x14) = puVar19;" (assignment_expression "*(uint **)(puVar47 + 0x14) = puVar19" (pointer_expression "*(uint **)(puVar47 + 0x14)" (* "*") (cast_expression "(uint **)(puVar47 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar47 + 0x14)" (( "(") (binary_expression "puVar47 + 0x14" (identifier "puVar47") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar19")) (; ";")) (expression_statement "*(int *)(puVar47 + 0x10) = iVar37;" (assignment_expression "*(int *)(puVar47 + 0x10) = iVar37" (pointer_expression "*(int *)(puVar47 + 0x10)" (* "*") (cast_expression "(int *)(puVar47 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar47 + 0x10)" (( "(") (binary_expression "puVar47 + 0x10" (identifier "puVar47") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar37")) (; ";")) (expression_statement "pEVar40 = in_t3;" (assignment_expression "pEVar40 = in_t3" (identifier "pEVar40") (= "=") (identifier "in_t3")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);" (call_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sec_powm_000972d0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sec_powm_000972d0" (* "*") (cast_expression "(code *)PTR___gmpn_sec_powm_000972d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sec_powm_000972d0"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")"))) (; ";")) (expression_statement "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);" (assignment_expression "pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" (identifier "pcVar18") (= "=") (binary_expression "in_t2 + (int)(unaff_s5->e_ident_magic_str + -5)" (identifier "in_t2") (+ "+") (cast_expression "(int)(unaff_s5->e_ident_magic_str + -5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s5->e_ident_magic_str + -5)" (( "(") (binary_expression "unaff_s5->e_ident_magic_str + -5" (field_expression "unaff_s5->e_ident_magic_str" (identifier "unaff_s5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-5")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)pcVar18;" (assignment_expression "iVar8 = *(int *)pcVar18" (identifier "iVar8") (= "=") (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18")))) (; ";")) (expression_statement "pEVar7 = in_t1;" (assignment_expression "pEVar7 = in_t1" (identifier "pEVar7") (= "=") (identifier "in_t1")) (; ";")) (expression_statement "pEVar5 = pEVar10;" (assignment_expression "pEVar5 = pEVar10" (identifier "pEVar5") (= "=") (identifier "pEVar10")) (; ";")) (goto_statement "goto joined_r0x00030154;" (goto "goto") (statement_identifier "joined_r0x00030154") (; ";")) (} "}"))) (} "}")) (while "while") (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"))) () ")")) (; ";")) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n    uVar6 = (uint)(uVar6 != 1);\n  }\n  else {\n    uVar6 = 1;\n  }" (if "if") (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" (identifier "pEVar10") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    uVar6 = (uint)(uVar6 != 1);\n  }" ({ "{") (expression_statement "uVar6 = (uint)(uVar6 != 1);" (assignment_expression "uVar6 = (uint)(uVar6 != 1)" (identifier "uVar6") (= "=") (call_expression "(uint)(uVar6 != 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar6 = 1;\n  }" (else "else") (compound_statement "{\n    uVar6 = 1;\n  }" ({ "{") (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "param_1[1] = uVar6;" (assignment_expression "param_1[1] = uVar6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)param_1[2] = 1;" (assignment_expression "*(undefined4 *)param_1[2] = 1" (pointer_expression "*(undefined4 *)param_1[2]" (* "*") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00030200:\n  iVar8 = *(int *)puVar4;" (statement_identifier "LAB_00030200") (: ":") (expression_statement "iVar8 = *(int *)puVar4;" (assignment_expression "iVar8 = *(int *)puVar4" (identifier "iVar8") (= "=") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";"))) (if_statement "if (local_2c == iVar8) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(local_2c == iVar8)" (( "(") (binary_expression "local_2c == iVar8" (identifier "local_2c") (== "==") (identifier "iVar8")) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}"))) (expression_statement "pcVar51 = FUN_00030430;" (assignment_expression "pcVar51 = FUN_00030430" (identifier "pcVar51") (= "=") (identifier "FUN_00030430")) (; ";")) (expression_statement "puVar45 = PTR___stack_chk_fail_000974d0;" (assignment_expression "puVar45 = PTR___stack_chk_fail_000974d0" (identifier "puVar45") (= "=") (identifier "PTR___stack_chk_fail_000974d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000974d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000974d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000974d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000974d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000974d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000974d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined **)(puVar9 + -0x24) = puVar4;" (assignment_expression "*(undefined **)(puVar9 + -0x24) = puVar4" (pointer_expression "*(undefined **)(puVar9 + -0x24)" (* "*") (cast_expression "(undefined **)(puVar9 + -0x24)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x24)" (( "(") (binary_expression "puVar9 + -0x24" (identifier "puVar9") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "piVar39 = *(int **)(puVar45 + 0x67110);" (assignment_expression "piVar39 = *(int **)(puVar45 + 0x67110)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar45 + 0x67110)" (* "*") (cast_expression "(int **)(puVar45 + 0x67110)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x67110)" (( "(") (binary_expression "puVar45 + 0x67110" (identifier "puVar45") (+ "+") (number_literal "0x67110")) () ")"))))) (; ";")) (expression_statement "puVar35 = *(undefined4 **)(puVar9 + 0x10);" (assignment_expression "puVar35 = *(undefined4 **)(puVar9 + 0x10)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined4 **)(puVar9 + 0x10)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x10)" (( "(") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;" (assignment_expression "*(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10" (pointer_expression "*(undefined **)(puVar9 + -0x38)" (* "*") (cast_expression "(undefined **)(puVar9 + -0x38)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (binary_expression "puVar45 + 0x6ec10" (identifier "puVar45") (+ "+") (number_literal "0x6ec10"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x18)" (( "(") (binary_expression "puVar9 + -0x18" (identifier "puVar9") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar16")) (; ";")) (expression_statement "*(int *)(puVar9 + -0x1c) = param_4;" (assignment_expression "*(int *)(puVar9 + -0x1c) = param_4" (pointer_expression "*(int *)(puVar9 + -0x1c)" (* "*") (cast_expression "(int *)(puVar9 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x1c)" (( "(") (binary_expression "puVar9 + -0x1c" (identifier "puVar9") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x20) = param_2" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x20)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x20)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x20)" (( "(") (binary_expression "puVar9 + -0x20" (identifier "puVar9") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(code **)(puVar9 + -4) = pcVar51;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar51" (pointer_expression "*(code **)(puVar9 + -4)" (* "*") (cast_expression "(code **)(puVar9 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -4)" (( "(") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar51")) (; ";")) (expression_statement "*(undefined1 **)(puVar9 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar9 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -8)" (( "(") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "*(int **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar9 + -0xc) = param_1" (pointer_expression "*(int **)(puVar9 + -0xc)" (* "*") (cast_expression "(int **)(puVar9 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x28)" (( "(") (binary_expression "puVar9 + -0x28" (identifier "puVar9") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x30)" (( "(") (binary_expression "puVar9 + -0x30" (identifier "puVar9") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar44 = *(undefined4 *)(puVar9 + 0x14);" (assignment_expression "uVar44 = *(undefined4 *)(puVar9 + 0x14)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x14)" (( "(") (binary_expression "puVar9 + 0x14" (identifier "puVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" (* "*") (cast_expression "(int *)(puVar9 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x2c)" (( "(") (binary_expression "puVar9 + -0x2c" (identifier "puVar9") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" (identifier "pEVar16") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar30 = pEVar27;" (assignment_expression "pEVar30 = pEVar27" (identifier "pEVar30") (= "=") (identifier "pEVar27")) (; ";")) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x1) {\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }\n  else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" (if "if") (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar40 == (Elf32_Ehdr *)0x1" (identifier "pEVar40") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    pEVar7 = (Elf32_Ehdr *)0x0;\n    pcVar51 = *(code **)(puVar45 + 0x66e78);\n    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;\n    uVar11 = (*pcVar51)(uVar44);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n    pEVar5->e_ident_magic_str[2] = (char)uVar11;\nLAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    pcVar51 = *(code **)(iVar8 + -0x7a2c);\n    pEVar40 = unaff_s0;\n    puVar49 = puVar36;\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }\n  }" ({ "{") (expression_statement "pEVar7 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)0x0" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66e78);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66e78)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar45 + 0x66e78)" (* "*") (cast_expression "(code **)(puVar45 + 0x66e78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x66e78)" (( "(") (binary_expression "puVar45 + 0x66e78" (identifier "puVar45") (+ "+") (number_literal "0x66e78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)param_3" (* "*") (cast_expression "(undefined4 *)param_3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3")))) (; ";")) (expression_statement "uVar11 = (*pcVar51)(uVar44);" (assignment_expression "uVar11 = (*pcVar51)(uVar44)" (identifier "uVar11") (= "=") (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar11 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 0x18)" (( "(") (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar11 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 0x10)" (( "(") (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar11 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 8)" (( "(") (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar11"))) (; ";")) (labeled_statement "LAB_0003056c:\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (statement_identifier "LAB_0003056c") (: ":") (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" (identifier "pEVar24") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x30)" (( "(") (binary_expression "puVar9 + -0x30" (identifier "puVar9") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";"))) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(iVar8 + -0x7a2c)" (* "*") (cast_expression "(code **)(iVar8 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7a2c)" (( "(") (binary_expression "iVar8 + -0x7a2c" (identifier "iVar8") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (expression_statement "pEVar40 = unaff_s0;" (assignment_expression "pEVar40 = unaff_s0" (identifier "pEVar40") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "puVar49 = puVar36;" (assignment_expression "puVar49 = puVar36" (identifier "puVar49") (= "=") (identifier "puVar36")) (; ";")) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" (if "if") (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" (identifier "pEVar24") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00030534:\n      (*pcVar51)();\n      iVar8 = *(int *)(puVar9 + -0x38);\n    }" ({ "{") (labeled_statement "LAB_00030534:\n      (*pcVar51)();" (statement_identifier "LAB_00030534") (: ":") (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" (else "else") (compound_statement "{\n    pEVar7 = pEVar5;\n    unaff_s0 = pEVar40;\n    if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }\n    if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }\n    *(undefined4 **)(puVar9 + -0x44) = puVar35;\n    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n    pEVar16 = pEVar27;\n    pEVar30 = param_3;\n    (*pcVar51)(uVar44);\n    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);\n    iVar8 = *(int *)(puVar9 + -0x38);\n    if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }\n  }" ({ "{") (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" (identifier "pEVar7") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "unaff_s0 = pEVar40;" (assignment_expression "unaff_s0 = pEVar40" (identifier "unaff_s0") (= "=") (identifier "pEVar40")) (; ";")) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x2) {\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" (if "if") (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "pEVar40 == (Elf32_Ehdr *)0x2" (identifier "pEVar40") (== "==") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      uVar22 = *(undefined4 *)param_3;\n      uVar11 = *(undefined4 *)&param_3->e_ident_class;\n      pcVar51 = *(code **)(puVar45 + 0x66f54);\n      *(undefined4 *)(puVar9 + -0x40) = *puVar35;\n      *(undefined4 *)(puVar9 + -0x44) = uVar22;\n      *(undefined4 *)(puVar9 + -0x48) = uVar11;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" ({ "{") (expression_statement "uVar22 = *(undefined4 *)param_3;" (assignment_expression "uVar22 = *(undefined4 *)param_3" (identifier "uVar22") (= "=") (pointer_expression "*(undefined4 *)param_3" (* "*") (cast_expression "(undefined4 *)param_3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3")))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)&param_3->e_ident_class;" (assignment_expression "uVar11 = *(undefined4 *)&param_3->e_ident_class" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)&param_3->e_ident_class" (* "*") (cast_expression "(undefined4 *)&param_3->e_ident_class" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&param_3->e_ident_class" (& "&") (field_expression "param_3->e_ident_class" (identifier "param_3") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x66f54);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x66f54)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar45 + 0x66f54)" (* "*") (cast_expression "(code **)(puVar45 + 0x66f54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x66f54)" (( "(") (binary_expression "puVar45 + 0x66f54" (identifier "puVar45") (+ "+") (number_literal "0x66f54")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = *puVar35" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x40)" (( "(") (binary_expression "puVar9 + -0x40" (identifier "puVar9") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar22;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar22" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x44)" (( "(") (binary_expression "puVar9 + -0x44" (identifier "puVar9") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x48) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x48) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" (identifier "puVar36") (= "=") (identifier "auStack_68")) (; ";")) (goto_statement "goto LAB_0003056c;" (goto "goto") (statement_identifier "LAB_0003056c") (; ";")) (} "}"))) (if_statement "if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" (if "if") (parenthesized_expression "(((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28))" (( "(") (binary_expression "((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)" (parenthesized_expression "((int)pEVar40 < 0x28)" (( "(") (binary_expression "(int)pEVar40 < 0x28" (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40")) (< "<") (number_literal "0x28")) () ")")) (|| "||") (parenthesized_expression "((int)pEVar27 - (int)pEVar40 < 0x28)" (( "(") (binary_expression "(int)pEVar27 - (int)pEVar40 < 0x28" (binary_expression "(int)pEVar27 - (int)pEVar40" (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27")) (- "-") (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40"))) (< "<") (number_literal "0x28")) () ")"))) () ")")) (compound_statement "{\n      uVar11 = *puVar35;\n      pcVar51 = *(code **)(puVar45 + 0x6700c);\n      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;\n      *(undefined4 *)(puVar9 + -0x44) = uVar11;\n      pEVar16 = pEVar27;\n      pEVar30 = param_3;\n      (*pcVar51)(uVar44);\n      iVar8 = *(int *)(puVar9 + -0x38);\n      puVar36 = auStack_68;\n      goto LAB_0003056c;\n    }" ({ "{") (expression_statement "uVar11 = *puVar35;" (assignment_expression "uVar11 = *puVar35" (identifier "uVar11") (= "=") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6700c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6700c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar45 + 0x6700c)" (* "*") (cast_expression "(code **)(puVar45 + 0x6700c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x6700c)" (( "(") (binary_expression "puVar45 + 0x6700c" (identifier "puVar45") (+ "+") (number_literal "0x6700c")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x44) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x44) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x44)" (( "(") (binary_expression "puVar9 + -0x44" (identifier "puVar9") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" (identifier "pEVar16") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" (identifier "pEVar30") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "puVar36 = auStack_68;" (assignment_expression "puVar36 = auStack_68" (identifier "puVar36") (= "=") (identifier "auStack_68")) (; ";")) (goto_statement "goto LAB_0003056c;" (goto "goto") (statement_identifier "LAB_0003056c") (; ";")) (} "}"))) (if_statement "if ((int)pEVar40 < 200) {\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }\n    else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" (if "if") (parenthesized_expression "((int)pEVar40 < 200)" (( "(") (binary_expression "(int)pEVar40 < 200" (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40")) (< "<") (number_literal "200")) () ")")) (compound_statement "{\nLAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n    }" ({ "{") (labeled_statement "LAB_00030504:\n      pcVar51 = *(code **)(puVar45 + 0x6709c);" (statement_identifier "LAB_00030504") (: ":") (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar45 + 0x6709c)" (* "*") (cast_expression "(code **)(puVar45 + 0x6709c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x6709c)" (( "(") (binary_expression "puVar45 + 0x6709c" (identifier "puVar45") (+ "+") (number_literal "0x6709c")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar51 = *(code **)(puVar45 + 0x6709c);\n      puVar49 = auStack_68;\n      if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }\n    }" ({ "{") (expression_statement "pcVar51 = *(code **)(puVar45 + 0x6709c);" (assignment_expression "pcVar51 = *(code **)(puVar45 + 0x6709c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar45 + 0x6709c)" (* "*") (cast_expression "(code **)(puVar45 + 0x6709c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x6709c)" (( "(") (binary_expression "puVar45 + 0x6709c" (identifier "puVar45") (+ "+") (number_literal "0x6709c")) () ")"))))) (; ";")) (expression_statement "puVar49 = auStack_68;" (assignment_expression "puVar49 = auStack_68" (identifier "puVar49") (= "=") (identifier "auStack_68")) (; ";")) (if_statement "if (3999 < (int)pEVar27) {\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" (if "if") (parenthesized_expression "(3999 < (int)pEVar27)" (( "(") (binary_expression "3999 < (int)pEVar27" (number_literal "3999") (< "<") (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27"))) () ")")) (compound_statement "{\n        puVar49 = (undefined1 *)((int)pEVar40 * 4);\n        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }\n        goto LAB_00030504;\n      }" ({ "{") (expression_statement "puVar49 = (undefined1 *)((int)pEVar40 * 4);" (assignment_expression "puVar49 = (undefined1 *)((int)pEVar40 * 4)" (identifier "puVar49") (= "=") (cast_expression "(undefined1 *)((int)pEVar40 * 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar40 * 4)" (( "(") (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27) {\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" (if "if") (parenthesized_expression "((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27)" (( "(") (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=\n            (double)(int)pEVar40 * (double)(int)pEVar27" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +\n            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (binary_expression "(double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (cast_expression "(double)(int)pEVar40" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40"))) (* "*") (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (* "*") (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a70)" (( "(") (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a70" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" (* "*") (cast_expression "(int *)(puVar45 + 0x66c3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar45 + 0x66c3c)" (( "(") (binary_expression "puVar45 + 0x66c3c" (identifier "puVar45") (+ "+") (number_literal "0x66c3c")) () ")")))) (+ "+") (number_literal "-0x2a70")) () ")"))))) (+ "+") (binary_expression "(double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (cast_expression "(double)(int)pEVar27" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27"))) (* "*") (pointer_expression "*(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (* "*") (cast_expression "(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar45 + 0x66c3c) + -0x2a68)" (( "(") (binary_expression "*(int *)(puVar45 + 0x66c3c) + -0x2a68" (pointer_expression "*(int *)(puVar45 + 0x66c3c)" (* "*") (cast_expression "(int *)(puVar45 + 0x66c3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar45 + 0x66c3c)" (( "(") (binary_expression "puVar45 + 0x66c3c" (identifier "puVar45") (+ "+") (number_literal "0x66c3c")) () ")")))) (+ "+") (number_literal "-0x2a68")) () ")")))))) (<= "<=") (binary_expression "(double)(int)pEVar40 * (double)(int)pEVar27" (cast_expression "(double)(int)pEVar40" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40"))) (* "*") (cast_expression "(double)(int)pEVar27" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pEVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar27"))))) () ")")) (compound_statement "{\n          param_1 = (int *)(puVar9 + -0x30);\n          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);\n          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);\n          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);\n          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;\n          *(undefined4 *)(puVar9 + -0x40) = uVar11;\n          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;\n          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);\n          pEVar7 = pEVar10;\n          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);\n          iVar8 = *(int *)(puVar9 + -0x38);\n          uVar11._0_1_ = pEVar10->e_ident_magic_num;\n          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];\n          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];\n          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];\n          pEVar24 = pEVar5;\n          pEVar42 = pEVar10;\n          do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);\n          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);\n          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);\n          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;\n          unaff_s0 = (Elf32_Ehdr *)0x0;\n          puVar36 = puVar49;\n          goto LAB_0003056c;\n        }" ({ "{") (expression_statement "param_1 = (int *)(puVar9 + -0x30);" (assignment_expression "param_1 = (int *)(puVar9 + -0x30)" (identifier "param_1") (= "=") (cast_expression "(int *)(puVar9 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x30)" (( "(") (binary_expression "puVar9 + -0x30" (identifier "puVar9") (+ "+") (number_literal "-0x30")) () ")")))) (; ";")) (expression_statement "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49)" (parenthesized_expression "(**(code **)(puVar45 + 0x66ec0))" (( "(") (pointer_expression "**(code **)(puVar45 + 0x66ec0)" (* "*") (pointer_expression "*(code **)(puVar45 + 0x66ec0)" (* "*") (cast_expression "(code **)(puVar45 + 0x66ec0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar45 + 0x66ec0)" (( "(") (binary_expression "puVar45 + 0x66ec0" (identifier "puVar45") (+ "+") (number_literal "0x66ec0")) () ")"))))) () ")")) (argument_list "(param_1,puVar49)" (( "(") (identifier "param_1") (, ",") (identifier "puVar49") () ")"))))) (; ";")) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" (* "*") (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7e7c)" (( "(") (binary_expression "*(int *)(puVar9 + -0x38) + -0x7e7c" (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")")))) (+ "+") (number_literal "-0x7e7c")) () ")"))))) () ")")) (argument_list "(pEVar27,pEVar40,0)" (( "(") (identifier "pEVar27") (, ",") (identifier "pEVar40") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);" (assignment_expression "uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" (identifier "uVar11") (= "=") (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" (* "*") (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7d50)" (( "(") (binary_expression "*(int *)(puVar9 + -0x38) + -0x7d50" (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")")))) (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(param_1,iVar8 << 2)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar8 << 2" (identifier "iVar8") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x44)" (( "(") (binary_expression "puVar9 + -0x44" (identifier "puVar9") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x40) = uVar11;" (assignment_expression "*(undefined4 *)(puVar9 + -0x40) = uVar11" (pointer_expression "*(undefined4 *)(puVar9 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x40)" (( "(") (binary_expression "puVar9 + -0x40" (identifier "puVar9") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1)" (identifier "pwVar38") (= "=") (cast_expression "(word *)((int)&pEVar40[-1].e_shstrndx + 1)" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar40[-1].e_shstrndx" (& "&") (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" (identifier "pEVar40") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar7 = pEVar10;" (assignment_expression "pEVar7 = pEVar10" (identifier "pEVar7") (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);" (call_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44)" (parenthesized_expression "(**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" (* "*") (cast_expression "(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar9 + -0x38) + -0x7ccc)" (( "(") (binary_expression "*(int *)(puVar9 + -0x38) + -0x7ccc" (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")")))) (+ "+") (number_literal "-0x7ccc")) () ")"))))) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "uVar11._0_1_ = pEVar10->e_ident_magic_num;" (assignment_expression "uVar11._0_1_ = pEVar10->e_ident_magic_num" (field_expression "uVar11._0_1_" (identifier "uVar11") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar10->e_ident_magic_num" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar11._1_1_ = pEVar10->e_ident_magic_str[0];" (assignment_expression "uVar11._1_1_ = pEVar10->e_ident_magic_str[0]" (field_expression "uVar11._1_1_" (identifier "uVar11") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar11._2_1_ = pEVar10->e_ident_magic_str[1];" (assignment_expression "uVar11._2_1_ = pEVar10->e_ident_magic_str[1]" (field_expression "uVar11._2_1_" (identifier "uVar11") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11._3_1_ = pEVar10->e_ident_magic_str[2];" (assignment_expression "uVar11._3_1_ = pEVar10->e_ident_magic_str[2]" (field_expression "uVar11._3_1_" (identifier "uVar11") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar24 = pEVar5;" (assignment_expression "pEVar24 = pEVar5" (identifier "pEVar24") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar42 = pEVar10;" (assignment_expression "pEVar42 = pEVar10" (identifier "pEVar42") (= "=") (identifier "pEVar10")) (; ";")) (do_statement "do {\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          } while (pwVar38 != (word *)0x0);" (do "do") (compound_statement "{\n            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);\n            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);\n            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);\n            pEVar24->e_ident_magic_str[2] = (char)uVar11;\n            pwVar38 = (word *)((int)pwVar38 + -1);\n            uVar11._0_1_ = pEVar42->e_ident_class;\n            uVar11._1_1_ = pEVar42->e_ident_data;\n            uVar11._2_1_ = pEVar42->e_ident_version;\n            uVar11._3_1_ = pEVar42->e_ident_osabi;\n            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);" (assignment_expression "pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18)" (field_expression "pEVar24->e_ident_magic_num" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar11 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 0x18)" (( "(") (binary_expression "(uint)uVar11 >> 0x18" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10)" (subscript_expression "pEVar24->e_ident_magic_str[0]" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar11 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 0x10)" (( "(") (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);" (assignment_expression "pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8)" (subscript_expression "pEVar24->e_ident_magic_str[1]" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar11 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar11 >> 8)" (( "(") (binary_expression "(uint)uVar11 >> 8" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar24->e_ident_magic_str[2] = (char)uVar11;" (assignment_expression "pEVar24->e_ident_magic_str[2] = (char)uVar11" (subscript_expression "pEVar24->e_ident_magic_str[2]" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "pwVar38 = (word *)((int)pwVar38 + -1);" (assignment_expression "pwVar38 = (word *)((int)pwVar38 + -1)" (identifier "pwVar38") (= "=") (cast_expression "(word *)((int)pwVar38 + -1)" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pwVar38 + -1)" (( "(") (binary_expression "(int)pwVar38 + -1" (cast_expression "(int)pwVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pwVar38")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "uVar11._0_1_ = pEVar42->e_ident_class;" (assignment_expression "uVar11._0_1_ = pEVar42->e_ident_class" (field_expression "uVar11._0_1_" (identifier "uVar11") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_class" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar11._1_1_ = pEVar42->e_ident_data;" (assignment_expression "uVar11._1_1_ = pEVar42->e_ident_data" (field_expression "uVar11._1_1_" (identifier "uVar11") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar42->e_ident_data" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar11._2_1_ = pEVar42->e_ident_version;" (assignment_expression "uVar11._2_1_ = pEVar42->e_ident_version" (field_expression "uVar11._2_1_" (identifier "uVar11") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar42->e_ident_version" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar11._3_1_ = pEVar42->e_ident_osabi;" (assignment_expression "uVar11._3_1_ = pEVar42->e_ident_osabi" (field_expression "uVar11._3_1_" (identifier "uVar11") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar42->e_ident_osabi" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar24->e_ident_class" (& "&") (field_expression "pEVar24->e_ident_class" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar42->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar42->e_ident_class" (& "&") (field_expression "pEVar42->e_ident_class" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pwVar38 != (word *)0x0)" (( "(") (binary_expression "pwVar38 != (word *)0x0" (identifier "pwVar38") (!= "!=") (cast_expression "(word *)0x0" (( "(") (type_descriptor "word *" (type_identifier "word") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar40 * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);" (assignment_expression "pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10)" (field_expression "pEVar5[-0xffffffff00000001].e_shnum" (subscript_expression "pEVar5[-0xffffffff00000001]" (identifier "pEVar5") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shnum")) (= "=") (cast_expression "(short)((uint)uVar11 >> 0x10)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((uint)uVar11 >> 0x10)" (( "(") (binary_expression "(uint)uVar11 >> 0x10" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;" (assignment_expression "pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11" (field_expression "pEVar5[-0xffffffff00000001].e_shstrndx" (subscript_expression "pEVar5[-0xffffffff00000001]" (identifier "pEVar5") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shstrndx")) (= "=") (cast_expression "(short)uVar11" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "unaff_s0 = (Elf32_Ehdr *)0x0;" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)0x0" (identifier "unaff_s0") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar36 = puVar49;" (assignment_expression "puVar36 = puVar49" (identifier "puVar36") (= "=") (identifier "puVar49")) (; ";")) (goto_statement "goto LAB_0003056c;" (goto "goto") (statement_identifier "LAB_0003056c") (; ";")) (} "}"))) (goto_statement "goto LAB_00030504;" (goto "goto") (statement_identifier "LAB_00030504") (; ";")) (} "}"))) (} "}")))) (expression_statement "*(undefined4 **)(puVar9 + -0x44) = puVar35;" (assignment_expression "*(undefined4 **)(puVar9 + -0x44) = puVar35" (pointer_expression "*(undefined4 **)(puVar9 + -0x44)" (* "*") (cast_expression "(undefined4 **)(puVar9 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x44)" (( "(") (binary_expression "puVar9 + -0x44" (identifier "puVar9") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "puVar35")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "pEVar16 = pEVar27;" (assignment_expression "pEVar16 = pEVar27" (identifier "pEVar16") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "pEVar30 = param_3;" (assignment_expression "pEVar30 = param_3" (identifier "pEVar30") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*pcVar51)(uVar44);" (call_expression "(*pcVar51)(uVar44)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30)" (identifier "pEVar24") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x30)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x30)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x30)" (( "(") (binary_expression "puVar9 + -0x30" (identifier "puVar9") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x38);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x38)" (* "*") (cast_expression "(int *)(puVar9 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x38)" (( "(") (binary_expression "puVar9 + -0x38" (identifier "puVar9") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (if_statement "if (pEVar24 != (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" (if "if") (parenthesized_expression "(pEVar24 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar24 != (Elf32_Ehdr *)0x0" (identifier "pEVar24") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar51 = *(code **)(iVar8 + -0x7a2c);\n      goto LAB_00030534;\n    }" ({ "{") (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7a2c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(iVar8 + -0x7a2c)" (* "*") (cast_expression "(code **)(iVar8 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7a2c)" (( "(") (binary_expression "iVar8 + -0x7a2c" (identifier "iVar8") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030534;" (goto "goto") (statement_identifier "LAB_00030534") (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(puVar9 + -0x2c) == *piVar39) {\n    return *piVar39;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar9 + -0x2c) == *piVar39)" (( "(") (binary_expression "*(int *)(puVar9 + -0x2c) == *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" (* "*") (cast_expression "(int *)(puVar9 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x2c)" (( "(") (binary_expression "puVar9 + -0x2c" (identifier "puVar9") (+ "+") (number_literal "-0x2c")) () ")")))) (== "==") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) () ")")) (compound_statement "{\n    return *piVar39;\n  }" ({ "{") (return_statement "return *piVar39;" (return "return") (pointer_expression "*piVar39" (* "*") (identifier "piVar39")) (; ";")) (} "}"))) (expression_statement "pcVar51 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar8 + -0x7b70)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(iVar8 + -0x7b70)" (* "*") (cast_expression "(code **)(iVar8 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7b70)" (( "(") (binary_expression "iVar8 + -0x7b70" (identifier "iVar8") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "pcVar52 = FUN_000306c8;" (assignment_expression "pcVar52 = FUN_000306c8" (identifier "pcVar52") (= "=") (identifier "FUN_000306c8")) (; ";")) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar46 = pcVar51 + 0x6e978;" (assignment_expression "pcVar46 = pcVar51 + 0x6e978" (identifier "pcVar46") (= "=") (binary_expression "pcVar51 + 0x6e978" (identifier "pcVar51") (+ "+") (number_literal "0x6e978"))) (; ";")) (expression_statement "puVar36 = puVar9 + -0xb0;" (assignment_expression "puVar36 = puVar9 + -0xb0" (identifier "puVar36") (= "=") (binary_expression "puVar9 + -0xb0" (identifier "puVar9") (+ "+") (number_literal "-0xb0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = param_3" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x70)" (( "(") (binary_expression "puVar9 + -0x70" (identifier "puVar9") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x68)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x68)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x68)" (( "(") (binary_expression "puVar9 + -0x68" (identifier "puVar9") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4)" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar16 * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar16 * 4)" (( "(") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78)" (identifier "pEVar42") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pcVar51 + 0x66e78)" (* "*") (cast_expression "(Elf32_Ehdr **)(pcVar51 + 0x66e78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x66e78)" (( "(") (binary_expression "pcVar51 + 0x66e78" (identifier "pcVar51") (+ "+") (number_literal "0x66e78")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar9 + -0x60) = puVar49;" (assignment_expression "*(undefined1 **)(puVar9 + -0x60) = puVar49" (pointer_expression "*(undefined1 **)(puVar9 + -0x60)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -0x60)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x60)" (( "(") (binary_expression "puVar9 + -0x60" (identifier "puVar9") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "puVar49")) (; ";")) (expression_statement "*(int **)(puVar9 + -100) = param_1;" (assignment_expression "*(int **)(puVar9 + -100) = param_1" (pointer_expression "*(int **)(puVar9 + -100)" (* "*") (cast_expression "(int **)(puVar9 + -100)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -100)" (( "(") (binary_expression "puVar9 + -100" (identifier "puVar9") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x6c) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0x6c) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x6c)" (( "(") (binary_expression "puVar9 + -0x6c" (identifier "puVar9") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x74)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x74)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x74)" (( "(") (binary_expression "puVar9 + -0x74" (identifier "puVar9") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x78)" (( "(") (binary_expression "puVar9 + -0x78" (identifier "puVar9") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x80)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x80)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x80)" (( "(") (binary_expression "puVar9 + -0x80" (identifier "puVar9") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "*(code **)(puVar9 + -0x5c) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -0x5c) = pcVar52" (pointer_expression "*(code **)(puVar9 + -0x5c)" (* "*") (cast_expression "(code **)(puVar9 + -0x5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x5c)" (( "(") (binary_expression "puVar9 + -0x5c" (identifier "puVar9") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "pcVar52")) (; ";")) (expression_statement "*(int **)(puVar9 + -0x7c) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x7c) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x7c)" (* "*") (cast_expression "(int **)(puVar9 + -0x7c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x7c)" (( "(") (binary_expression "puVar9 + -0x7c" (identifier "puVar9") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (identifier "piVar39")) (; ";")) (expression_statement "*(code **)(puVar9 + -0x98) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0x98) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0x98)" (* "*") (cast_expression "(code **)(puVar9 + -0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x98)" (( "(") (binary_expression "puVar9 + -0x98" (identifier "puVar9") (+ "+") (number_literal "-0x98")) () ")")))) (= "=") (identifier "pcVar46")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x88) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0x88) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0x88)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x88)" (( "(") (binary_expression "puVar9 + -0x88" (identifier "puVar9") (+ "+") (number_literal "-0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48)" (identifier "pEVar40") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x48)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x48)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x48)" (( "(") (binary_expression "puVar9 + -0x48" (identifier "puVar9") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);" (assignment_expression "pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44)" (identifier "pEVar5") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x44)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x44)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x44)" (( "(") (binary_expression "puVar9 + -0x44" (identifier "puVar9") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;" (assignment_expression "*(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42" (pointer_expression "*(undefined4 *)(puVar9 + -0x84)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x84)" (( "(") (binary_expression "puVar9 + -0x84" (identifier "puVar9") (+ "+") (number_literal "-0x84")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)pEVar42" (* "*") (cast_expression "(undefined4 *)pEVar42" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar42")))) (; ";")) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x7f01) {\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }\n  else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" (if "if") (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x7f01)" (( "(") (binary_expression "pEVar10 < (Elf32_Ehdr *)0x7f01" (identifier "pEVar10") (< "<") (cast_expression "(Elf32_Ehdr *)0x7f01" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);\n    puVar36 = puVar9 + iVar8 + -0xb0;\n    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);\n  }" ({ "{") (expression_statement "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);" (assignment_expression "iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" (- "-") (parenthesized_expression "((uint)&pEVar10->e_ident_osabi & 0xfffffff8)" (( "(") (binary_expression "(uint)&pEVar10->e_ident_osabi & 0xfffffff8" (binary_expression "(uint)&pEVar10->e_ident_osabi" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (& "&") (field_expression "pEVar10->e_ident_osabi" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_osabi"))) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar36 = puVar9 + iVar8 + -0xb0;" (assignment_expression "puVar36 = puVar9 + iVar8 + -0xb0" (identifier "puVar36") (= "=") (binary_expression "puVar9 + iVar8 + -0xb0" (binary_expression "puVar9 + iVar8" (identifier "puVar9") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0xb0"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar9 + iVar8 + -0x98)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + iVar8 + -0x98)" (( "(") (binary_expression "puVar9 + iVar8 + -0x98" (binary_expression "puVar9 + iVar8" (identifier "puVar9") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x98")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" (else "else") (compound_statement "{\n    pcVar51 = *(code **)(pcVar51 + 0x66c28);\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);\n    pcVar46 = *(code **)(puVar9 + -0x98);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" ({ "{") (expression_statement "pcVar51 = *(code **)(pcVar51 + 0x66c28);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + 0x66c28)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar51 + 0x66c28)" (* "*") (cast_expression "(code **)(pcVar51 + 0x66c28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x66c28)" (( "(") (binary_expression "pcVar51 + 0x66c28" (identifier "pcVar51") (+ "+") (number_literal "0x66c28")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x8c)" (( "(") (binary_expression "puVar9 + -0x8c" (identifier "puVar9") (+ "+") (number_literal "-0x8c")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar51)(puVar9 + -0x88,pEVar10)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(puVar9 + -0x88,pEVar10)" (( "(") (binary_expression "puVar9 + -0x88" (identifier "puVar9") (+ "+") (number_literal "-0x88")) (, ",") (identifier "pEVar10") () ")"))))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar9 + -0x98);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0x98)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar9 + -0x98)" (* "*") (cast_expression "(code **)(puVar9 + -0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x98)" (( "(") (binary_expression "puVar9 + -0x98" (identifier "puVar9") (+ "+") (number_literal "-0x98")) () ")"))))) (; ";")) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" (identifier "pEVar30") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x8c)" (( "(") (binary_expression "puVar9 + -0x8c" (identifier "puVar9") (+ "+") (number_literal "-0x8c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;" (assignment_expression "uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" (identifier "uVar6") (= "=") (binary_expression "(int)((int)pEVar16 + (1 - (int)pEVar40)) * 4" (cast_expression "(int)((int)pEVar16 + (1 - (int)pEVar40))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pEVar16 + (1 - (int)pEVar40))" (( "(") (binary_expression "(int)pEVar16 + (1 - (int)pEVar40)" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (+ "+") (parenthesized_expression "(1 - (int)pEVar40)" (( "(") (binary_expression "1 - (int)pEVar40" (number_literal "1") (- "-") (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40"))) () ")"))) () ")"))) (* "*") (number_literal "4"))) (; ";")) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7d50)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar46 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7d50)" (( "(") (binary_expression "pcVar46 + -0x7d50" (identifier "pcVar46") (+ "+") (number_literal "-0x7d50")) () ")"))))) (; ";")) (if_statement "if (uVar6 < 0x7f01) {\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }\n  else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" (if "if") (parenthesized_expression "(uVar6 < 0x7f01)" (( "(") (binary_expression "uVar6 < 0x7f01" (identifier "uVar6") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar8 = -(uVar6 + 7 & 0xfffffff8);\n    puVar49 = puVar36 + iVar8 + 0x18;\n    puVar36 = puVar36 + iVar8;\n  }" ({ "{") (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(uVar6 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" (identifier "uVar6") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar49 = puVar36 + iVar8 + 0x18;" (assignment_expression "puVar49 = puVar36 + iVar8 + 0x18" (identifier "puVar49") (= "=") (binary_expression "puVar36 + iVar8 + 0x18" (binary_expression "puVar36 + iVar8" (identifier "puVar36") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar36 = puVar36 + iVar8;" (assignment_expression "puVar36 = puVar36 + iVar8" (identifier "puVar36") (= "=") (binary_expression "puVar36 + iVar8" (identifier "puVar36") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")) (else_clause "else {\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" (else "else") (compound_statement "{\n    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;\n    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);\n    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);\n  }" ({ "{") (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x8c)" (( "(") (binary_expression "puVar9 + -0x8c" (identifier "puVar9") (+ "+") (number_literal "-0x8c")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);" (assignment_expression "puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88)" (identifier "puVar49") (= "=") (cast_expression "(undefined1 *)(*pcVar51)(puVar9 + -0x88)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar51)(puVar9 + -0x88)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(puVar9 + -0x88)" (( "(") (binary_expression "puVar9 + -0x88" (identifier "puVar9") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c)" (identifier "pEVar30") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x8c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x8c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x8c)" (( "(") (binary_expression "puVar9 + -0x8c" (identifier "puVar9") (+ "+") (number_literal "-0x8c")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" (if "if") (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" (identifier "pEVar16") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n    uVar44._0_1_ = pEVar7->e_ident_magic_num;\n    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];\n    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];\n    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];\n    pEVar41 = pEVar27;\n    pEVar28 = pEVar7;\n    if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }\n  }" ({ "{") (expression_statement "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar44._0_1_ = pEVar7->e_ident_magic_num;" (assignment_expression "uVar44._0_1_ = pEVar7->e_ident_magic_num" (field_expression "uVar44._0_1_" (identifier "uVar44") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar7->e_ident_magic_num" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar44._1_1_ = pEVar7->e_ident_magic_str[0];" (assignment_expression "uVar44._1_1_ = pEVar7->e_ident_magic_str[0]" (field_expression "uVar44._1_1_" (identifier "uVar44") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar44._2_1_ = pEVar7->e_ident_magic_str[1];" (assignment_expression "uVar44._2_1_ = pEVar7->e_ident_magic_str[1]" (field_expression "uVar44._2_1_" (identifier "uVar44") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar44._3_1_ = pEVar7->e_ident_magic_str[2];" (assignment_expression "uVar44._3_1_ = pEVar7->e_ident_magic_str[2]" (field_expression "uVar44._3_1_" (identifier "uVar44") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar41 = pEVar27;" (assignment_expression "pEVar41 = pEVar27" (identifier "pEVar41") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "pEVar28 = pEVar7;" (assignment_expression "pEVar28 = pEVar7" (identifier "pEVar28") (= "=") (identifier "pEVar7")) (; ";")) (if_statement "if (puVar20 == (undefined1 *)0x0) {\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }\n    else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" (if "if") (parenthesized_expression "(puVar20 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar20 == (undefined1 *)0x0" (identifier "puVar20") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar27->e_ident_magic_str[2] = (char)uVar44;\n      pEVar10 = pEVar27;\n    }" ({ "{") (expression_statement "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar44 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x18)" (( "(") (binary_expression "(uint)uVar44 >> 0x18" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 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)uVar44 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x10)" (( "(") (binary_expression "(uint)uVar44 >> 0x10" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 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)uVar44 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 8)" (( "(") (binary_expression "(uint)uVar44 >> 8" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar27->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar27->e_ident_magic_str[2] = (char)uVar44" (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)uVar44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar44"))) (; ";")) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" (identifier "pEVar10") (= "=") (identifier "pEVar27")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" (else "else") (compound_statement "{\n      do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);\n      pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );\n      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n      pEVar10->e_ident_magic_str[2] = (char)uVar44;\n    }" ({ "{") (do_statement "do {\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      } while (puVar20 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);\n        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);\n        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);\n        pEVar41->e_ident_magic_str[2] = (char)uVar44;\n        puVar20 = puVar20 + -1;\n        uVar44._0_1_ = pEVar28->e_ident_class;\n        uVar44._1_1_ = pEVar28->e_ident_data;\n        uVar44._2_1_ = pEVar28->e_ident_version;\n        uVar44._3_1_ = pEVar28->e_ident_osabi;\n        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;\n        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;\n      }" ({ "{") (expression_statement "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar41->e_ident_magic_num" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar44 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x18)" (( "(") (binary_expression "(uint)uVar44 >> 0x18" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar41->e_ident_magic_str[0]" (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar44 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x10)" (( "(") (binary_expression "(uint)uVar44 >> 0x10" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar41->e_ident_magic_str[1]" (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar44 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 8)" (( "(") (binary_expression "(uint)uVar44 >> 8" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar41->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar41->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar41->e_ident_magic_str[2]" (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar44"))) (; ";")) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -1" (identifier "puVar20") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar44._0_1_ = pEVar28->e_ident_class;" (assignment_expression "uVar44._0_1_ = pEVar28->e_ident_class" (field_expression "uVar44._0_1_" (identifier "uVar44") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar44._1_1_ = pEVar28->e_ident_data;" (assignment_expression "uVar44._1_1_ = pEVar28->e_ident_data" (field_expression "uVar44._1_1_" (identifier "uVar44") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar28->e_ident_data" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar44._2_1_ = pEVar28->e_ident_version;" (assignment_expression "uVar44._2_1_ = pEVar28->e_ident_version" (field_expression "uVar44._2_1_" (identifier "uVar44") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar28->e_ident_version" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar44._3_1_ = pEVar28->e_ident_osabi;" (assignment_expression "uVar44._3_1_ = pEVar28->e_ident_osabi" (field_expression "uVar44._3_1_" (identifier "uVar44") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar28->e_ident_osabi" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar41->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar41->e_ident_class" (& "&") (field_expression "pEVar41->e_ident_class" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar28->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar28->e_ident_class" (& "&") (field_expression "pEVar28->e_ident_class" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar20 != (undefined1 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                );" (assignment_expression "pEVar10 = (Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)\n                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str\n                )" (( "(") (binary_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str" (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shentsize + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar10[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar10[-1].e_shentsize + 1" (cast_expression "(int)&pEVar10[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar10[-1].e_shentsize" (& "&") (field_expression "pEVar10[-1].e_shentsize" (subscript_expression "pEVar10[-1]" (identifier "pEVar10") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (+ "+") (cast_expression "(int)pEVar27->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")))) () ")")))) (; ";")) (expression_statement "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);" (assignment_expression "pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18)" (field_expression "pEVar10->e_ident_magic_num" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar44 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x18)" (( "(") (binary_expression "(uint)uVar44 >> 0x18" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);" (assignment_expression "pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10)" (subscript_expression "pEVar10->e_ident_magic_str[0]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar44 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 0x10)" (( "(") (binary_expression "(uint)uVar44 >> 0x10" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);" (assignment_expression "pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8)" (subscript_expression "pEVar10->e_ident_magic_str[1]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar44 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar44 >> 8)" (( "(") (binary_expression "(uint)uVar44 >> 8" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar10->e_ident_magic_str[2] = (char)uVar44;" (assignment_expression "pEVar10->e_ident_magic_str[2] = (char)uVar44" (subscript_expression "pEVar10->e_ident_magic_str[2]" (field_expression "pEVar10->e_ident_magic_str" (identifier "pEVar10") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar44"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined1 **)(puVar36 + 0x14) = puVar49;" (assignment_expression "*(undefined1 **)(puVar36 + 0x14) = puVar49" (pointer_expression "*(undefined1 **)(puVar36 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar36 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x14)" (( "(") (binary_expression "puVar36 + 0x14" (identifier "puVar36") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar49")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x10)" (( "(") (binary_expression "puVar36 + 0x10" (identifier "puVar36") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" (identifier "pEVar28") (= "=") (identifier "pEVar16")) (; ";")) (expression_statement "pEVar34 = pEVar40;" (assignment_expression "pEVar34 = pEVar40" (identifier "pEVar34") (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "FUN_00030430(pEVar27);" (call_expression "FUN_00030430(pEVar27)" (identifier "FUN_00030430") (argument_list "(pEVar27)" (( "(") (identifier "pEVar27") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x98)" (* "*") (cast_expression "(int *)(puVar9 + -0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x98)" (( "(") (binary_expression "puVar9 + -0x98" (identifier "puVar9") (+ "+") (number_literal "-0x98")) () ")"))))) (; ";")) (expression_statement "pEVar41 = pEVar40;" (assignment_expression "pEVar41 = pEVar40" (identifier "pEVar41") (= "=") (identifier "pEVar40")) (; ";")) (if_statement "if (pEVar40 != (Elf32_Ehdr *)0x0) {\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" (if "if") (parenthesized_expression "(pEVar40 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar40 != (Elf32_Ehdr *)0x0" (identifier "pEVar40") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);\n    pEVar28 = *(Elf32_Ehdr **)pEVar27;\n    pEVar21 = pEVar24;\n    pEVar3 = pEVar27;\n    if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar24 = pEVar28;\n  }" ({ "{") (expression_statement "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);" (assignment_expression "puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" (identifier "puVar49") (= "=") (cast_expression "(undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar40[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar40[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar40[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar40[-1].e_shstrndx" (& "&") (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" (identifier "pEVar40") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar27;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar27" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar27" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar27" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar27")))) (; ";")) (expression_statement "pEVar21 = pEVar24;" (assignment_expression "pEVar21 = pEVar24" (identifier "pEVar21") (= "=") (identifier "pEVar24")) (; ";")) (expression_statement "pEVar3 = pEVar27;" (assignment_expression "pEVar3 = pEVar27" (identifier "pEVar3") (= "=") (identifier "pEVar27")) (; ";")) (if_statement "if (puVar49 != (undefined1 *)0x0) {\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" (if "if") (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar49 != (undefined1 *)0x0" (identifier "puVar49") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);\n      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);\n      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);\n    }" ({ "{") (do_statement "do {\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      } while (puVar49 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        *(Elf32_Ehdr **)pEVar21 = pEVar28;\n        puVar49 = puVar49 + -1;\n        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;\n        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar21 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar21 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar21" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar21" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar21"))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar49 = puVar49 + -1;" (assignment_expression "puVar49 = puVar49 + -1" (identifier "puVar49") (= "=") (binary_expression "puVar49 + -1" (identifier "puVar49") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar3->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar3->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar3->e_ident_class" (& "&") (field_expression "pEVar3->e_ident_class" (identifier "pEVar3") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;" (assignment_expression "pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class" (identifier "pEVar21") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar21->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar21->e_ident_class" (& "&") (field_expression "pEVar21->e_ident_class" (identifier "pEVar21") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar3->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar3->e_ident_class" (& "&") (field_expression "pEVar3->e_ident_class" (identifier "pEVar3") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar49 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar49 != (undefined1 *)0x0" (identifier "puVar49") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar40 * 4 + -4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar40 * 4 + -4)" (( "(") (binary_expression "(int)pEVar40 * 4 + -4" (binary_expression "(int)pEVar40 * 4" (cast_expression "(int)pEVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar40")) (* "*") (number_literal "4")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar40[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar40[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar40[-1].e_shstrndx" (& "&") (field_expression "pEVar40[-1].e_shstrndx" (subscript_expression "pEVar40[-1]" (identifier "pEVar40") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar24" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar24" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar24"))) (= "=") (identifier "pEVar28")) (; ";")) (} "}"))) (expression_statement "piVar39 = *(int **)(puVar9 + -0x88);" (assignment_expression "piVar39 = *(int **)(puVar9 + -0x88)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar9 + -0x88)" (* "*") (cast_expression "(int **)(puVar9 + -0x88)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x88)" (( "(") (binary_expression "puVar9 + -0x88" (identifier "puVar9") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (piVar39 != (int *)0x0) {\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" (if "if") (parenthesized_expression "(piVar39 != (int *)0x0)" (( "(") (binary_expression "piVar39 != (int *)0x0" (identifier "piVar39") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(iVar8 + -0x7a2c))();\n    iVar8 = *(int *)(puVar9 + -0x98);\n  }" ({ "{") (expression_statement "(**(code **)(iVar8 + -0x7a2c))();" (call_expression "(**(code **)(iVar8 + -0x7a2c))()" (parenthesized_expression "(**(code **)(iVar8 + -0x7a2c))" (( "(") (pointer_expression "**(code **)(iVar8 + -0x7a2c)" (* "*") (pointer_expression "*(code **)(iVar8 + -0x7a2c)" (* "*") (cast_expression "(code **)(iVar8 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7a2c)" (( "(") (binary_expression "iVar8 + -0x7a2c" (identifier "iVar8") (+ "+") (number_literal "-0x7a2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x98);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x98)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x98)" (* "*") (cast_expression "(int *)(puVar9 + -0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x98)" (( "(") (binary_expression "puVar9 + -0x98" (identifier "puVar9") (+ "+") (number_literal "-0x98")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar50._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "iVar50._0_1_ = pEVar42->e_ident_magic_num" (field_expression "iVar50._0_1_" (identifier "iVar50") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "iVar50._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "iVar50._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "iVar50._1_1_" (identifier "iVar50") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar50._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "iVar50._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "iVar50._2_1_" (identifier "iVar50") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar50._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "iVar50._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "iVar50._3_1_" (identifier "iVar50") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (*(int *)(puVar9 + -0x84) == iVar50) {\n    return iVar50;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar9 + -0x84) == iVar50)" (( "(") (binary_expression "*(int *)(puVar9 + -0x84) == iVar50" (pointer_expression "*(int *)(puVar9 + -0x84)" (* "*") (cast_expression "(int *)(puVar9 + -0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x84)" (( "(") (binary_expression "puVar9 + -0x84" (identifier "puVar9") (+ "+") (number_literal "-0x84")) () ")")))) (== "==") (identifier "iVar50")) () ")")) (compound_statement "{\n    return iVar50;\n  }" ({ "{") (return_statement "return iVar50;" (return "return") (identifier "iVar50") (; ";")) (} "}"))) (expression_statement "pcVar46 = *(code **)(iVar8 + -0x7b70);" (assignment_expression "pcVar46 = *(code **)(iVar8 + -0x7b70)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(iVar8 + -0x7b70)" (* "*") (cast_expression "(code **)(iVar8 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7b70)" (( "(") (binary_expression "iVar8 + -0x7b70" (identifier "iVar8") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "pcVar52 = __gmpz_powm_ui;" (assignment_expression "pcVar52 = __gmpz_powm_ui" (identifier "pcVar52") (= "=") (identifier "__gmpz_powm_ui")) (; ";")) (expression_statement "(*pcVar46)();" (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar51 = pcVar46 + 0x6e770;" (assignment_expression "pcVar51 = pcVar46 + 0x6e770" (identifier "pcVar51") (= "=") (binary_expression "pcVar46 + 0x6e770" (identifier "pcVar46") (+ "+") (number_literal "0x6e770"))) (; ";")) (expression_statement "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);" (assignment_expression "puVar35 = *(undefined4 **)(pcVar46 + 0x66c70)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined4 **)(pcVar46 + 0x66c70)" (* "*") (cast_expression "(undefined4 **)(pcVar46 + 0x66c70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x66c70)" (( "(") (binary_expression "pcVar46 + 0x66c70" (identifier "pcVar46") (+ "+") (number_literal "0x66c70")) () ")"))))) (; ";")) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" (identifier "puVar20") (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" (identifier "puVar49") (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "puVar48 = puVar36 + -0xa0;" (assignment_expression "puVar48 = puVar36 + -0xa0" (identifier "puVar48") (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;" (assignment_expression "*(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0" (pointer_expression "*(undefined1 **)(puVar36 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar36 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -8)" (( "(") (binary_expression "puVar36 + -8" (identifier "puVar36") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar9 + -0xb0" (identifier "puVar9") (+ "+") (number_literal "-0xb0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x20)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x20)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x20)" (( "(") (binary_expression "puVar36 + -0x20" (identifier "puVar36") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "pEVar7")) (; ";")) (expression_statement "*(code **)(puVar36 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar36 + -4) = pcVar52" (pointer_expression "*(code **)(puVar36 + -4)" (* "*") (cast_expression "(code **)(puVar36 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -4)" (( "(") (binary_expression "puVar36 + -4" (identifier "puVar36") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar52")) (; ";")) (expression_statement "*(undefined4 **)(puVar36 + -0x58) = puVar35;" (assignment_expression "*(undefined4 **)(puVar36 + -0x58) = puVar35" (pointer_expression "*(undefined4 **)(puVar36 + -0x58)" (* "*") (cast_expression "(undefined4 **)(puVar36 + -0x58)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x58)" (( "(") (binary_expression "puVar36 + -0x58" (identifier "puVar36") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "puVar35")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0xc)" (( "(") (binary_expression "puVar36 + -0xc" (identifier "puVar36") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x10)" (( "(") (binary_expression "puVar36 + -0x10" (identifier "puVar36") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x14)" (( "(") (binary_expression "puVar36 + -0x14" (identifier "puVar36") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pEVar16")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x18)" (( "(") (binary_expression "puVar36 + -0x18" (identifier "puVar36") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar42")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x1c)" (( "(") (binary_expression "puVar36 + -0x1c" (identifier "puVar36") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar41")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x24)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x24)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x24)" (( "(") (binary_expression "puVar36 + -0x24" (identifier "puVar36") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x28)" (( "(") (binary_expression "puVar36 + -0x28" (identifier "puVar36") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pEVar24")) (; ";")) (expression_statement "*(code **)(puVar36 + -0x88) = pcVar51;" (assignment_expression "*(code **)(puVar36 + -0x88) = pcVar51" (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")")))) (= "=") (identifier "pcVar51")) (; ";")) (expression_statement "*(int **)(puVar36 + -0x54) = piVar39;" (assignment_expression "*(int **)(puVar36 + -0x54) = piVar39" (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (identifier "piVar39")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x5c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x5c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x5c)" (( "(") (binary_expression "puVar36 + -0x5c" (identifier "puVar36") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x68)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x68)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x68)" (( "(") (binary_expression "puVar36 + -0x68" (identifier "puVar36") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -0x2c) = *puVar35;" (assignment_expression "*(undefined4 *)(puVar36 + -0x2c) = *puVar35" (pointer_expression "*(undefined4 *)(puVar36 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x2c)" (( "(") (binary_expression "puVar36 + -0x2c" (identifier "puVar36") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (; ";")) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" (identifier "pEVar40") (= "=") (identifier "pEVar30")) (; ";")) (if_statement "if (pEVar30 < (Elf32_Ehdr *)0x14) {\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }\n  else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" (if "if") (parenthesized_expression "(pEVar30 < (Elf32_Ehdr *)0x14)" (( "(") (binary_expression "pEVar30 < (Elf32_Ehdr *)0x14" (identifier "pEVar30") (< "<") (cast_expression "(Elf32_Ehdr *)0x14" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x14"))) () ")")) (compound_statement "{\n    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;\n    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;\n    pEVar10 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }\n    if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }\n    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;\n    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);\n    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));\n    uVar54 = uVar55;\n    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }\n    uVar54 = uVar6 << 0x10 | uVar54;\n    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);\n    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }\n    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);\n    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));\n    uVar6 = uVar54;\n    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }\n    *(uint *)(puVar36 + -0x44) = uVar6;\n    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);\n    pEVar41 = pEVar7;\n    if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }\n    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);\n    if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }\n    uVar6 = *(int *)(puVar36 + -0x50) + 4;\n    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);\n    *(uint *)(puVar36 + -0x70) = uVar6;\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    iVar8 = *(int *)(puVar36 + -100);\n    uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;\n    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;\n    pEVar28 = pEVar42;\n    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);\n    pcVar51 = *(code **)(puVar36 + -0x88);\n    pEVar41 = pEVar10;\n    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }\nLAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }\n    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }\n    puVar35 = *(undefined4 **)(puVar36 + -100);\n    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);\n    pEVar28 = (Elf32_Ehdr *)*puVar35;\n    pEVar40 = pEVar5;\n    puVar9 = puVar20;\n    if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }\n    *(Elf32_Ehdr **)pEVar40 = pEVar28;\n    pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);\n    iVar8 = 0x1f - (int)pEVar24;\n    pEVar16 = pEVar41;\n    if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }\nLAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;\n    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);\n    if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }\nLAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);\n    piVar12 = *(int **)(puVar36 + -0x58);\n    if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }\n  }" ({ "{") (expression_statement "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class" (identifier "pEVar7") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar34->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar34->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar34->e_ident_class" (& "&") (field_expression "pEVar34->e_ident_class" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;" (assignment_expression "*(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion" (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)&pEVar34->e_ident_abiversion" (* "*") (cast_expression "(undefined4 *)&pEVar34->e_ident_abiversion" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar34->e_ident_abiversion" (& "&") (field_expression "pEVar34->e_ident_abiversion" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_abiversion")))))) (; ";")) (expression_statement "pEVar10 = pEVar7;" (assignment_expression "pEVar10 = pEVar7" (identifier "pEVar10") (= "=") (identifier "pEVar7")) (; ";")) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" (if "if") (parenthesized_expression "((int)pEVar7 < 0)" (( "(") (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" ({ "{") (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar7" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar7" (- "-") (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7"))))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }\n    else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" (if "if") (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" (identifier "pEVar7") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pEVar7 = pEVar30;\n      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();\nLAB_00031228:\n      uVar6 = (uint)uVar56;\n      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);\n      puVar49 = puVar20;\n    }" ({ "{") (expression_statement "pEVar7 = pEVar30;" (assignment_expression "pEVar7 = pEVar30" (identifier "pEVar7") (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "uVar56 = (**(code **)(pcVar46 + 0x66d0c))();" (assignment_expression "uVar56 = (**(code **)(pcVar46 + 0x66d0c))()" (identifier "uVar56") (= "=") (call_expression "(**(code **)(pcVar46 + 0x66d0c))()" (parenthesized_expression "(**(code **)(pcVar46 + 0x66d0c))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x66d0c)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x66d0c)" (* "*") (cast_expression "(code **)(pcVar46 + 0x66d0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x66d0c)" (( "(") (binary_expression "pcVar46 + 0x66d0c" (identifier "pcVar46") (+ "+") (number_literal "0x66d0c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_00031228:\n      uVar6 = (uint)uVar56;" (statement_identifier "LAB_00031228") (: ":") (expression_statement "uVar6 = (uint)uVar56;" (assignment_expression "uVar6 = (uint)uVar56" (identifier "uVar6") (= "=") (cast_expression "(uint)uVar56" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar56"))) (; ";"))) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1)" (( "(") (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1" (binary_expression "pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20)" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)((ulonglong)uVar56 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar56 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar56 >> 0x20" (cast_expression "(ulonglong)uVar56" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar56")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" (identifier "puVar49") (= "=") (identifier "puVar20")) (; ";")) (} "}")) (else_clause "else {\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" (else "else") (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);\n      if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }\n      *(undefined4 *)(puVar36 + -0x40) = 0;\n      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;\n      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);\n      if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }\n      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);\n      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];\n      *(int *)(puVar36 + -0x6c) = iVar8;\n      puVar20 = puVar36 + -0xa0;\n      if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }\n      if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }\n      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);\n      if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }\n      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;\n      in_t2 = (char *)((uint)pEVar28 & 0xffff);\n      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);\n      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);\n      uVar6 = uVar54;\n      in_t1 = pEVar34;\n      puVar49 = puVar20;\n      if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }\n    }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar10 * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar10 * 4)" (( "(") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (pEVar30 == (Elf32_Ehdr *)0x0) {\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }" (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"))) () ")")) (compound_statement "{\n        uVar6 = 1;\n        if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }\n        piVar39 = *(int **)(puVar36 + -0x54);\n        piVar39[1] = uVar6;\n        *(undefined4 *)piVar39[2] = 1;\n        puVar49 = puVar36 + -0xa0;\n        goto LAB_00030c64;\n      }" ({ "{") (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" (if "if") (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" (identifier "pEVar10") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);\n        }" ({ "{") (expression_statement "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);" (assignment_expression "uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1)" (identifier "uVar6") (= "=") (call_expression "(uint)(**(int **)(puVar36 + -0x4c) != 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(**(int **)(puVar36 + -0x4c) != 1)" (( "(") (binary_expression "**(int **)(puVar36 + -0x4c) != 1" (pointer_expression "**(int **)(puVar36 + -0x4c)" (* "*") (pointer_expression "*(int **)(puVar36 + -0x4c)" (* "*") (cast_expression "(int **)(puVar36 + -0x4c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")"))))) (!= "!=") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "piVar39[1] = uVar6;" (assignment_expression "piVar39[1] = uVar6" (subscript_expression "piVar39[1]" (identifier "piVar39") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)piVar39[2] = 1;" (assignment_expression "*(undefined4 *)piVar39[2] = 1" (pointer_expression "*(undefined4 *)piVar39[2]" (* "*") (cast_expression "(undefined4 *)piVar39[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar39[2]" (identifier "piVar39") ([ "[") (number_literal "2") (] "]")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar49 = puVar36 + -0xa0;" (assignment_expression "puVar49 = puVar36 + -0xa0" (identifier "puVar49") (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar36 + -0x40) = 0;" (assignment_expression "*(undefined4 *)(puVar36 + -0x40) = 0" (pointer_expression "*(undefined4 *)(puVar36 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;" (assignment_expression "*(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum" (pointer_expression "*(word **)(puVar36 + -0x50)" (* "*") (cast_expression "(word **)(puVar36 + -0x50)" (( "(") (type_descriptor "word **" (type_identifier "word") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (pointer_expression "&pEVar27[-1].e_shnum" (& "&") (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" (identifier "pEVar27") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum")))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum)" (( "(") (binary_expression "*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum" (pointer_expression "*(int *)(puVar36 + -0x4c)" (* "*") (cast_expression "(int *)(puVar36 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (cast_expression "(int)&pEVar27[-1].e_shnum" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar27[-1].e_shnum" (& "&") (field_expression "pEVar27[-1].e_shnum" (subscript_expression "pEVar27[-1]" (identifier "pEVar27") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) () ")"))))) (; ";")) (if_statement "if (pEVar28 < &Elf32_Ehdr_00010000) {\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }\n      else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" (if "if") (parenthesized_expression "(pEVar28 < &Elf32_Ehdr_00010000)" (( "(") (binary_expression "pEVar28 < &Elf32_Ehdr_00010000" (identifier "pEVar28") (< "<") (pointer_expression "&Elf32_Ehdr_00010000" (& "&") (identifier "Elf32_Ehdr_00010000"))) () ")")) (compound_statement "{\n        iVar8 = 0x20;\n        if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }\n        iVar37 = 9;\n        if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }\n      }" ({ "{") (expression_statement "iVar8 = 0x20;" (assignment_expression "iVar8 = 0x20" (identifier "iVar8") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff < pEVar28) {\n          iVar8 = 0x18;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xff < pEVar28)" (( "(") (binary_expression "(Elf32_Ehdr *)0xff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff")) (< "<") (identifier "pEVar28")) () ")")) (compound_statement "{\n          iVar8 = 0x18;\n        }" ({ "{") (expression_statement "iVar8 = 0x18;" (assignment_expression "iVar8 = 0x18" (identifier "iVar8") (= "=") (number_literal "0x18")) (; ";")) (} "}"))) (expression_statement "iVar37 = 9;" (assignment_expression "iVar37 = 9" (identifier "iVar37") (= "=") (number_literal "9")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xff >= pEVar28) {\n          iVar37 = 1;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xff >= pEVar28)" (( "(") (binary_expression "(Elf32_Ehdr *)0xff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff")) (>= ">=") (identifier "pEVar28")) () ")")) (compound_statement "{\n          iVar37 = 1;\n        }" ({ "{") (expression_statement "iVar37 = 1;" (assignment_expression "iVar37 = 1" (identifier "iVar37") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" (else "else") (compound_statement "{\n        iVar8 = 0x10;\n        if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }\n        iVar37 = 0x19;\n        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }\n      }" ({ "{") (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" (identifier "iVar8") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff < pEVar28) {\n          iVar8 = 8;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xffffff < pEVar28)" (( "(") (binary_expression "(Elf32_Ehdr *)0xffffff < pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff")) (< "<") (identifier "pEVar28")) () ")")) (compound_statement "{\n          iVar8 = 8;\n        }" ({ "{") (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "iVar37 = 0x19;" (assignment_expression "iVar37 = 0x19" (identifier "iVar37") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if ((Elf32_Ehdr *)0xffffff >= pEVar28) {\n          iVar37 = 0x11;\n        }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)0xffffff >= pEVar28)" (( "(") (binary_expression "(Elf32_Ehdr *)0xffffff >= pEVar28" (cast_expression "(Elf32_Ehdr *)0xffffff" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff")) (>= ">=") (identifier "pEVar28")) () ")")) (compound_statement "{\n          iVar37 = 0x11;\n        }" ({ "{") (expression_statement "iVar37 = 0x11;" (assignment_expression "iVar37 = 0x11" (identifier "iVar37") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc)" (identifier "pEVar24") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pcVar46 + 0x668bc)" (* "*") (cast_expression "(Elf32_Ehdr **)(pcVar46 + 0x668bc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x668bc)" (( "(") (binary_expression "pcVar46 + 0x668bc" (identifier "pcVar46") (+ "+") (number_literal "0x668bc")) () ")"))))) (; ";")) (expression_statement "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];" (assignment_expression "iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (identifier "iVar8") (= "=") (binary_expression "iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (identifier "iVar8") (- "-") (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1]" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "((uint)pEVar28 >> iVar37) - 1" (parenthesized_expression "((uint)pEVar28 >> iVar37)" (( "(") (binary_expression "(uint)pEVar28 >> iVar37" (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28")) (>> ">>") (identifier "iVar37")) () ")")) (- "-") (number_literal "1")) (] "]")))))) (; ";")) (expression_statement "*(int *)(puVar36 + -0x6c) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x6c) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x6c)" (* "*") (cast_expression "(int *)(puVar36 + -0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x6c)" (( "(") (binary_expression "puVar36 + -0x6c" (identifier "puVar36") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "puVar20 = puVar36 + -0xa0;" (assignment_expression "puVar20 = puVar36 + -0xa0" (identifier "puVar20") (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }\n        (**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;\n        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);\n        puVar20 = puVar48;\n      }" ({ "{") (if_statement "if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }\n        else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n          puVar48 = puVar36 + iVar8 + -0xa0;\n          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);\n        }" ({ "{") (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar48 = puVar36 + iVar8 + -0xa0;" (assignment_expression "puVar48 = puVar36 + iVar8 + -0xa0" (identifier "puVar48") (= "=") (binary_expression "puVar36 + iVar8 + -0xa0" (binary_expression "puVar36 + iVar8" (identifier "puVar36") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar36 + iVar8 + -0x88)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + iVar8 + -0x88)" (( "(") (binary_expression "puVar36 + iVar8 + -0x88" (binary_expression "puVar36 + iVar8" (identifier "puVar36") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x88")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" (else "else") (compound_statement "{\n          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n        }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar46 + 0x66a20))" (( "(") (pointer_expression "**(code **)(pcVar46 + 0x66a20)" (* "*") (pointer_expression "*(code **)(pcVar46 + 0x66a20)" (* "*") (cast_expression "(code **)(pcVar46 + 0x66a20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x66a20)" (( "(") (binary_expression "pcVar46 + 0x66a20" (identifier "pcVar46") (+ "+") (number_literal "0x66a20")) () ")"))))) () ")")) (argument_list "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  );" (call_expression "(**(code **)(pcVar51 + -0x7ad4))\n                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7ad4)" (( "(") (binary_expression "pcVar51 + -0x7ad4" (identifier "pcVar51") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)\n                  )" (( "(") (identifier "pEVar27") (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar10") (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x6c)" (( "(") (binary_expression "puVar36 + -0x6c" (identifier "puVar36") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x4c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x4c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (* "*") (cast_expression "(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (( "(") (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar27->e_ident_magic_str" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "puVar20 = puVar48;" (assignment_expression "puVar20 = puVar48" (identifier "puVar20") (= "=") (identifier "puVar48")) (; ";")) (} "}"))) (if_statement "if (pEVar10 == (Elf32_Ehdr *)0x1) {\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }\n      else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" (if "if") (parenthesized_expression "(pEVar10 == (Elf32_Ehdr *)0x1)" (( "(") (binary_expression "pEVar10 == (Elf32_Ehdr *)0x1" (identifier "pEVar10") (== "==") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        pEVar34 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar34 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar34 = (Elf32_Ehdr *)0x0" (identifier "pEVar34") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" (else "else") (compound_statement "{\n        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);\n      }" ({ "{") (expression_statement "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);" (assignment_expression "pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" (identifier "pEVar34") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4" (binary_expression "*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50)" (pointer_expression "*(int *)(puVar36 + -0x4c)" (* "*") (cast_expression "(int *)(puVar36 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar28 >> 0x10)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar28 >> 0x10)" (( "(") (binary_expression "(uint)pEVar28 >> 0x10" (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" (identifier "pEVar7") (== "==") (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 "uVar54 = ~(uint)pEVar28 / (uint)pEVar7;" (assignment_expression "uVar54 = ~(uint)pEVar28 / (uint)pEVar7" (identifier "uVar54") (= "=") (binary_expression "~(uint)pEVar28 / (uint)pEVar7" (unary_expression "~(uint)pEVar28" (~ "~") (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28"))) (/ "/") (cast_expression "(uint)pEVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar7")))) (; ";")) (expression_statement "in_t2 = (char *)((uint)pEVar28 & 0xffff);" (assignment_expression "in_t2 = (char *)((uint)pEVar28 & 0xffff)" (identifier "in_t2") (= "=") (cast_expression "(char *)((uint)pEVar28 & 0xffff)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar28 & 0xffff)" (( "(") (binary_expression "(uint)pEVar28 & 0xffff" (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28")) (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);" (assignment_expression "in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54)" (identifier "in_t3") (= "=") (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar54)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)in_t2 * uVar54)" (( "(") (binary_expression "(int)in_t2 * uVar54" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (* "*") (identifier "uVar54")) () ")")))) (; ";")) (expression_statement "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff)" (( "(") (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "~(uint)pEVar28 % (uint)pEVar7 << 0x10" (binary_expression "~(uint)pEVar28 % (uint)pEVar7" (unary_expression "~(uint)pEVar28" (~ "~") (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28"))) (% "%") (cast_expression "(uint)pEVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar7"))) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" (identifier "uVar6") (= "=") (identifier "uVar54")) (; ";")) (expression_statement "in_t1 = pEVar34;" (assignment_expression "in_t1 = pEVar34" (identifier "in_t1") (= "=") (identifier "pEVar34")) (; ";")) (expression_statement "puVar49 = puVar20;" (assignment_expression "puVar49 = puVar20" (identifier "puVar49") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (pEVar42 < in_t3) {\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" (if "if") (parenthesized_expression "(pEVar42 < in_t3)" (( "(") (binary_expression "pEVar42 < in_t3" (identifier "pEVar42") (< "<") (identifier "in_t3")) () ")")) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));\n        uVar6 = uVar54 - 1;\n        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;\n      }" ({ "{") (expression_statement "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)\n                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2)" (field_expression "pEVar28->e_ident_magic_str" (identifier "pEVar28") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar42->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar42->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar42->e_ident_magic_str + -2" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar54 - 1" (identifier "uVar54") (- "-") (number_literal "1"))) (; ";")) (if_statement "if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))\n        goto LAB_00031228;" (if "if") (parenthesized_expression "((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))" (( "(") (binary_expression "(pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" (parenthesized_expression "(pEVar28 <= pEVar42)" (( "(") (binary_expression "pEVar28 <= pEVar42" (identifier "pEVar28") (<= "<=") (identifier "pEVar42")) () ")")) (&& "&&") (parenthesized_expression "(uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3)" (( "(") (comma_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3" (assignment_expression "uVar56 = CONCAT44(pEVar42,uVar54 - 2)" (identifier "uVar56") (= "=") (call_expression "CONCAT44(pEVar42,uVar54 - 2)" (identifier "CONCAT44") (argument_list "(pEVar42,uVar54 - 2)" (( "(") (identifier "pEVar42") (, ",") (binary_expression "uVar54 - 2" (identifier "uVar54") (- "-") (number_literal "2")) () ")")))) (, ",") (binary_expression "pEVar42 < in_t3" (identifier "pEVar42") (< "<") (identifier "in_t3"))) () ")"))) () ")")) (goto_statement "goto LAB_00031228;" (goto "goto") (statement_identifier "LAB_00031228") (; ";"))) (} "}"))) (} "}")))) (if_statement "if (pEVar7 == (Elf32_Ehdr *)0x0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(pEVar7 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar7 == (Elf32_Ehdr *)0x0" (identifier "pEVar7") (== "==") (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 "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;" (assignment_expression "uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" (identifier "uVar55") (= "=") (binary_expression "(uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar42 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar42")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (/ "/") (cast_expression "(uint)pEVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar7")))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff)" (( "(") (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10" (binary_expression "(uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7" (call_expression "(uint)((int)pEVar42 - (int)in_t3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pEVar42 - (int)in_t3)" (( "(") (binary_expression "(int)pEVar42 - (int)in_t3" (cast_expression "(int)pEVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar42")) (- "-") (cast_expression "(int)in_t3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t3"))) () ")"))) (% "%") (cast_expression "(uint)pEVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar7"))) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2)" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar28->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar28->e_ident_magic_str + -2)" (( "(") (binary_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")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar54 = uVar55;" (assignment_expression "uVar54 = uVar55" (identifier "uVar54") (= "=") (identifier "uVar55")) (; ";")) (if_statement "if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )) {\n      uVar54 = uVar55 - 1;\n    }" (if "if") (parenthesized_expression "((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       ))" (( "(") (binary_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&\n       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" (parenthesized_expression "(pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55))" (( "(") (binary_expression "pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)" (identifier "pEVar7") (< "<") (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)in_t2 * uVar55)" (( "(") (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (* "*") (identifier "uVar55")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))\n       )" (( "(") (parenthesized_expression "(pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))" (( "(") (binary_expression "pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" (binary_expression "pEVar42 < pEVar28" (identifier "pEVar42") (< "<") (identifier "pEVar28")) (|| "||") (parenthesized_expression "(uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42)" (( "(") (comma_expression "uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (assignment_expression "uVar54 = uVar55 - 2" (identifier "uVar54") (= "=") (binary_expression "uVar55 - 2" (identifier "uVar55") (- "-") (number_literal "2"))) (, ",") (binary_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42" (cast_expression "(Elf32_Ehdr *)((int)in_t2 * uVar55)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)in_t2 * uVar55)" (( "(") (binary_expression "(int)in_t2 * uVar55" (cast_expression "(int)in_t2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "in_t2")) (* "*") (identifier "uVar55")) () ")"))) (<= "<=") (identifier "pEVar42"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar54 = uVar55 - 1;\n    }" ({ "{") (expression_statement "uVar54 = uVar55 - 1;" (assignment_expression "uVar54 = uVar55 - 1" (identifier "uVar54") (= "=") (binary_expression "uVar55 - 1" (identifier "uVar55") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar54 = uVar6 << 0x10 | uVar54;" (assignment_expression "uVar54 = uVar6 << 0x10 | uVar54" (identifier "uVar54") (= "=") (binary_expression "uVar6 << 0x10 | uVar54" (binary_expression "uVar6 << 0x10" (identifier "uVar6") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar54"))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1)" (( "(") (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1" (binary_expression "pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54" (field_expression "pEVar34->e_ident_magic_str" (identifier "pEVar34") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar28 * uVar54" (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28")) (* "*") (identifier "uVar54"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar54")) (* "*") (call_expression "ZEXT48(in_t1)" (identifier "ZEXT48") (argument_list "(in_t1)" (( "(") (identifier "in_t1") () ")"))))) (; ";")) (if_statement "if (pEVar7 < pEVar34) {\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" (if "if") (parenthesized_expression "(pEVar7 < pEVar34)" (( "(") (binary_expression "pEVar7 < pEVar34" (identifier "pEVar7") (< "<") (identifier "pEVar34")) () ")")) (compound_statement "{\n      uVar6 = pEVar7 < pEVar28 ^ 1;\n      pEVar42 = pEVar28;\n      if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }\n      uVar54 = (uVar54 - 1) - uVar6;\n      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));\n      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);\n    }" ({ "{") (expression_statement "uVar6 = pEVar7 < pEVar28 ^ 1;" (assignment_expression "uVar6 = pEVar7 < pEVar28 ^ 1" (identifier "uVar6") (= "=") (binary_expression "pEVar7 < pEVar28 ^ 1" (binary_expression "pEVar7 < pEVar28" (identifier "pEVar7") (< "<") (identifier "pEVar28")) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "pEVar42 = pEVar28;" (assignment_expression "pEVar42 = pEVar28" (identifier "pEVar42") (= "=") (identifier "pEVar28")) (; ";")) (if_statement "if (uVar6 == 0) {\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar42 = (Elf32_Ehdr *)0x0;\n      }" ({ "{") (expression_statement "pEVar42 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar42 = (Elf32_Ehdr *)0x0" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "uVar54 = (uVar54 - 1) - uVar6;" (assignment_expression "uVar54 = (uVar54 - 1) - uVar6" (identifier "uVar54") (= "=") (binary_expression "(uVar54 - 1) - uVar6" (parenthesized_expression "(uVar54 - 1)" (( "(") (binary_expression "uVar54 - 1" (identifier "uVar54") (- "-") (number_literal "1")) () ")")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28))" (( "(") (binary_expression "(int)pEVar7 + (-(int)pEVar42 - (int)pEVar28)" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (+ "+") (parenthesized_expression "(-(int)pEVar42 - (int)pEVar28)" (( "(") (binary_expression "-(int)pEVar42 - (int)pEVar28" (unary_expression "-(int)pEVar42" (- "-") (cast_expression "(int)pEVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar42"))) (- "-") (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28"))) () ")"))) () ")")))) (; ";")) (expression_statement "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);" (assignment_expression "lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)uVar54 * ZEXT48(in_t1)" (cast_expression "(ulonglong)uVar54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar54")) (* "*") (call_expression "ZEXT48(in_t1)" (identifier "ZEXT48") (argument_list "(in_t1)" (( "(") (identifier "in_t1") () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20)" (identifier "pEVar42") (= "=") (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 "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2))" (( "(") (binary_expression "pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2)" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (cast_expression "(int)(pEVar7->e_ident_magic_str + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar7->e_ident_magic_str + -2)" (( "(") (binary_expression "pEVar7->e_ident_magic_str + -2" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar6 = uVar54;" (assignment_expression "uVar6 = uVar54" (identifier "uVar6") (= "=") (identifier "uVar54")) (; ";")) (if_statement "if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {\n      uVar6 = uVar54 - 2;\n    }" (if "if") (parenthesized_expression "(((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))))" (( "(") (binary_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&\n       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" (parenthesized_expression "((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7))" (( "(") (binary_expression "(pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" (parenthesized_expression "(pEVar7 < pEVar42)" (( "(") (binary_expression "pEVar7 < pEVar42" (identifier "pEVar7") (< "<") (identifier "pEVar42")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = uVar54 - 1, pEVar28 <= pEVar7)" (( "(") (comma_expression "uVar6 = uVar54 - 1, pEVar28 <= pEVar7" (assignment_expression "uVar6 = uVar54 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar54 - 1" (identifier "uVar54") (- "-") (number_literal "1"))) (, ",") (binary_expression "pEVar28 <= pEVar7" (identifier "pEVar28") (<= "<=") (identifier "pEVar7"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)))" (( "(") (parenthesized_expression "(pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2))" (( "(") (comma_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(pEVar28 < pEVar7)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pEVar28 < pEVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar28 < pEVar7)" (( "(") (binary_expression "pEVar28 < pEVar7" (identifier "pEVar28") (< "<") (identifier "pEVar7")) () ")"))))) (, ",") (binary_expression "pEVar28 != (Elf32_Ehdr *)0x0 ||\n        (pEVar34 <= (Elf32_Ehdr *)lVar2)" (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"))) (|| "||") (parenthesized_expression "(pEVar34 <= (Elf32_Ehdr *)lVar2)" (( "(") (binary_expression "pEVar34 <= (Elf32_Ehdr *)lVar2" (identifier "pEVar34") (<= "<=") (cast_expression "(Elf32_Ehdr *)lVar2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar2"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar6 = uVar54 - 2;\n    }" ({ "{") (expression_statement "uVar6 = uVar54 - 2;" (assignment_expression "uVar6 = uVar54 - 2" (identifier "uVar6") (= "=") (binary_expression "uVar54 - 2" (identifier "uVar54") (- "-") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar36 + -0x44) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x44) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x44)" (* "*") (cast_expression "(uint *)(puVar36 + -0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x44)" (( "(") (binary_expression "puVar36 + -0x44" (identifier "puVar36") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);" (assignment_expression "pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" (identifier "pEVar7") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" (* "*") (cast_expression "(int *)(puVar36 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x5c)" (( "(") (binary_expression "puVar36 + -0x5c" (identifier "puVar36") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pEVar41 = pEVar7;" (assignment_expression "pEVar41 = pEVar7" (identifier "pEVar41") (= "=") (identifier "pEVar7")) (; ";")) (if_statement "if ((int)pEVar7 < 0) {\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" (if "if") (parenthesized_expression "((int)pEVar7 < 0)" (( "(") (binary_expression "(int)pEVar7 < 0" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;\n    }" ({ "{") (expression_statement "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;" (assignment_expression "pEVar41 = (Elf32_Ehdr *)-(int)pEVar7" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar7" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar7" (- "-") (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7"))))) (; ";")) (} "}"))) (expression_statement "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);" (assignment_expression "pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" (identifier "pEVar42") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x5c) + 8" (pointer_expression "*(int *)(puVar36 + -0x5c)" (* "*") (cast_expression "(int *)(puVar36 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x5c)" (( "(") (binary_expression "puVar36 + -0x5c" (identifier "puVar36") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((int)pEVar41 <= (int)pEVar10) {\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" (if "if") (parenthesized_expression "((int)pEVar41 <= (int)pEVar10)" (( "(") (binary_expression "(int)pEVar41 <= (int)pEVar10" (cast_expression "(int)pEVar41" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar41")) (<= "<=") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))) () ")")) (compound_statement "{\n      if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }\nLAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);\n      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      if (piVar39 == (int *)0x0) goto LAB_00030c64;\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\nLAB_00030c08:\n      (*pcVar51)();\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      goto LAB_00030c64;\n    }" ({ "{") (if_statement "if (pEVar7 != (Elf32_Ehdr *)0x0) {\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" (if "if") (parenthesized_expression "(pEVar7 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar7 != (Elf32_Ehdr *)0x0" (identifier "pEVar7") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;\n        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;\n        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);\n        goto LAB_00030cf8;\n      }" ({ "{") (expression_statement "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -100) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -100)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -100)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "pEVar42")) (; ";")) (expression_statement "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;" (assignment_expression "*(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(uint *)(puVar36 + -0x70)" (* "*") (cast_expression "(uint *)(puVar36 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(puVar36 + -0x50) + 4U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 4U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 4U" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030cf8;" (goto "goto") (statement_identifier "LAB_00030cf8") (; ";")) (} "}"))) (labeled_statement "LAB_00030bf4:\n      piVar39 = *(int **)(puVar36 + -0x40);" (statement_identifier "LAB_00030bf4") (: ":") (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x40)" (* "*") (cast_expression "(int **)(puVar36 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" (* "*") (cast_expression "(int *)(puVar36 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar39 == (int *)0x0) goto LAB_00030c64;" (if "if") (parenthesized_expression "(piVar39 == (int *)0x0)" (( "(") (binary_expression "piVar39 == (int *)0x0" (identifier "piVar39") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";"))) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7a2c)" (( "(") (binary_expression "pcVar51 + -0x7a2c" (identifier "pcVar51") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (labeled_statement "LAB_00030c08:\n      (*pcVar51)();" (statement_identifier "LAB_00030c08") (: ":") (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030c64;" (goto "goto") (statement_identifier "LAB_00030c64") (; ";")) (} "}"))) (expression_statement "uVar6 = *(int *)(puVar36 + -0x50) + 4;" (assignment_expression "uVar6 = *(int *)(puVar36 + -0x50) + 4" (identifier "uVar6") (= "=") (binary_expression "*(int *)(puVar36 + -0x50) + 4" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(uint)(uVar6 < 0x7f01)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar6 < 0x7f01)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 < 0x7f01)" (( "(") (binary_expression "uVar6 < 0x7f01" (identifier "uVar6") (< "<") (number_literal "0x7f01")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar36 + -0x70) = uVar6;" (assignment_expression "*(uint *)(puVar36 + -0x70) = uVar6" (pointer_expression "*(uint *)(puVar36 + -0x70)" (* "*") (cast_expression "(uint *)(puVar36 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }\n    else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\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      pcVar51 = *(code **)(pcVar51 + -0x7d50);\n      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;\n      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);\n      *(undefined4 *)(puVar36 + -100) = uVar44;\n    }" ({ "{") (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7d50);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7d50)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d50)" (( "(") (binary_expression "pcVar51 + -0x7d50" (identifier "pcVar51") (+ "+") (number_literal "-0x7d50")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "pEVar41")) (; ";")) (expression_statement "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (identifier "uVar44") (= "=") (call_expression "(*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) () ")")))) (; ";")) (expression_statement "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);" (assignment_expression "pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60)" (identifier "pEVar41") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x60)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x60)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -100) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -100) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -100)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (} "}")) (else_clause "else {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" (else "else") (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" ({ "{") (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xbU" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -100)" (* "*") (cast_expression "(undefined1 **)(puVar36 + -100)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")")))) (= "=") (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" (identifier "puVar49") (= "=") (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")))) (expression_statement "iVar8 = *(int *)(puVar36 + -100);" (assignment_expression "iVar8 = *(int *)(puVar36 + -100)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar36 + -100)" (* "*") (cast_expression "(int *)(puVar36 + -100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar49 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x14)" (( "(") (binary_expression "puVar49 + 0x14" (identifier "puVar49") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar36 + -0x44" (identifier "puVar36") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x10)" (( "(") (binary_expression "puVar49 + 0x10" (identifier "puVar49") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "pEVar28 = pEVar42;" (assignment_expression "pEVar28 = pEVar42" (identifier "pEVar28") (= "=") (identifier "pEVar42")) (; ";")) (expression_statement "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);" (call_expression "FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44)" (identifier "FUN_000306c8") (argument_list "(iVar8,pEVar42,pEVar41,uVar44)" (( "(") (identifier "iVar8") (, ",") (identifier "pEVar42") (, ",") (identifier "pEVar41") (, ",") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar41 = pEVar10;" (assignment_expression "pEVar41 = pEVar10" (identifier "pEVar41") (= "=") (identifier "pEVar10")) (; ";")) (if_statement "if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0)" (( "(") (binary_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0" (pointer_expression "*(int *)(iVar8 + *(int *)(puVar36 + -0x50))" (* "*") (cast_expression "(int *)(iVar8 + *(int *)(puVar36 + -0x50))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + *(int *)(puVar36 + -0x50))" (( "(") (binary_expression "iVar8 + *(int *)(puVar36 + -0x50)" (identifier "iVar8") (+ "+") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);\n      do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);\n    }" ({ "{") (expression_statement "iVar8 = iVar8 + *(int *)(puVar36 + -0x70);" (assignment_expression "iVar8 = iVar8 + *(int *)(puVar36 + -0x70)" (identifier "iVar8") (= "=") (binary_expression "iVar8 + *(int *)(puVar36 + -0x70)" (identifier "iVar8") (+ "+") (pointer_expression "*(int *)(puVar36 + -0x70)" (* "*") (cast_expression "(int *)(puVar36 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))))) (; ";")) (do_statement "do {\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      } while (*piVar39 == 0);" (do "do") (compound_statement "{\n        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);\n        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;\n        piVar39 = (int *)(iVar8 + -8);\n        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);\n        iVar8 = iVar8 + -4;\n      }" ({ "{") (expression_statement "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar41[-1].e_shstrndx" (& "&") (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" (identifier "pEVar41") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;" (if "if") (parenthesized_expression "(pEVar41 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar41 == (Elf32_Ehdr *)0x0" (identifier "pEVar41") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030bf4;" (goto "goto") (statement_identifier "LAB_00030bf4") (; ";"))) (expression_statement "piVar39 = (int *)(iVar8 + -8);" (assignment_expression "piVar39 = (int *)(iVar8 + -8)" (identifier "piVar39") (= "=") (cast_expression "(int *)(iVar8 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -8)" (( "(") (binary_expression "iVar8 + -8" (identifier "iVar8") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar10 << 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar10 << 3)" (( "(") (binary_expression "(int)pEVar10 << 3" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -4" (identifier "iVar8") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar39 == 0)" (( "(") (binary_expression "*piVar39 == 0" (pointer_expression "*piVar39" (* "*") (identifier "piVar39")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00030cf8:\n    if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" (statement_identifier "LAB_00030cf8") (: ":") (if_statement "if ((int)pEVar10 * 8 + 4U < 0x7f01) {\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" (if "if") (parenthesized_expression "((int)pEVar10 * 8 + 4U < 0x7f01)" (( "(") (binary_expression "(int)pEVar10 * 8 + 4U < 0x7f01" (binary_expression "(int)pEVar10 * 8 + 4U" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "8")) (+ "+") (number_literal "4U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar8 = -((int)pEVar10 * 8 + 8);\n      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);\n      puVar49 = puVar49 + iVar8;\n    }" ({ "{") (expression_statement "iVar8 = -((int)pEVar10 * 8 + 8);" (assignment_expression "iVar8 = -((int)pEVar10 * 8 + 8)" (identifier "iVar8") (= "=") (unary_expression "-((int)pEVar10 * 8 + 8)" (- "-") (parenthesized_expression "((int)pEVar10 * 8 + 8)" (( "(") (binary_expression "(int)pEVar10 * 8 + 8" (binary_expression "(int)pEVar10 * 8" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "8")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + iVar8 + 0x18)" (( "(") (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" (identifier "puVar49") (= "=") (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")) (else_clause "else {\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" (else "else") (compound_statement "{\n      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" ({ "{") (expression_statement "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (identifier "pEVar42") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d50)" (( "(") (binary_expression "pcVar51 + -0x7d50" (identifier "pcVar51") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}"))))) (if_statement "if (pEVar27 == (Elf32_Ehdr *)0x0) {\n      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }\n    else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\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      pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));\n      pcVar51 = *(code **)(puVar36 + -0x88);\n    }" ({ "{") (expression_statement "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));" (assignment_expression "pEVar5 = (Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)\n               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d50)" (( "(") (binary_expression "pcVar51 + -0x7d50" (identifier "pcVar51") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70))" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) () ")"))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" (else "else") (compound_statement "{\n      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);\n      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);\n    }" ({ "{") (expression_statement "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18)" (( "(") (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18" (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar49") (+ "+") (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" (* "*") (cast_expression "(int *)(puVar36 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);" (assignment_expression "puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar49") (= "=") (binary_expression "puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (identifier "puVar49") (+ "+") (unary_expression "-(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x70) + 7U" (pointer_expression "*(int *)(puVar36 + -0x70)" (* "*") (cast_expression "(int *)(puVar36 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")")))) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }\n    else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 8U < 0x7f01)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 8U < 0x7f01" (binary_expression "*(int *)(puVar36 + -0x50) + 8U" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "8U")) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);\n      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;\n      puVar49 = puVar49 + iVar8;\n    }" ({ "{") (expression_statement "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);" (assignment_expression "iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" (- "-") (parenthesized_expression "(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8" (binary_expression "*(int *)(puVar36 + -0x50) + 0xfU" (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")")))) (+ "+") (number_literal "0xfU")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;" (assignment_expression "*(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18" (pointer_expression "*(undefined1 **)(puVar36 + -0x74)" (* "*") (cast_expression "(undefined1 **)(puVar36 + -0x74)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x74)" (( "(") (binary_expression "puVar36 + -0x74" (identifier "puVar36") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (binary_expression "puVar49 + iVar8 + 0x18" (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar49 = puVar49 + iVar8;" (assignment_expression "puVar49 = puVar49 + iVar8" (identifier "puVar49") (= "=") (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")) (else_clause "else {\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" (else "else") (compound_statement "{\n      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      *(undefined4 *)(puVar36 + -0x74) = uVar44;\n    }" ({ "{") (expression_statement "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);" (assignment_expression "uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (identifier "uVar44") (= "=") (call_expression "(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d50)" (( "(") (binary_expression "pcVar51 + -0x7d50" (identifier "pcVar51") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -0x74) = uVar44;" (assignment_expression "*(undefined4 *)(puVar36 + -0x74) = uVar44" (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x74)" (( "(") (binary_expression "puVar36 + -0x74" (identifier "puVar36") (+ "+") (number_literal "-0x74")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (} "}")))) (expression_statement "puVar35 = *(undefined4 **)(puVar36 + -100);" (assignment_expression "puVar35 = *(undefined4 **)(puVar36 + -100)" (identifier "puVar35") (= "=") (pointer_expression "*(undefined4 **)(puVar36 + -100)" (* "*") (cast_expression "(undefined4 **)(puVar36 + -100)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);" (assignment_expression "puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar41[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar41[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar41[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar41[-1].e_shstrndx" (& "&") (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" (identifier "pEVar41") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar35" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) (; ";")) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" (identifier "pEVar40") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" (identifier "puVar9") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (puVar20 != (undefined1 *)0x0) {\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" (if "if") (parenthesized_expression "(puVar20 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar20 != (undefined1 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);\n      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);\n    }" ({ "{") (do_statement "do {\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        puVar35 = puVar35 + 1;\n        *(Elf32_Ehdr **)pEVar40 = pEVar28;\n        puVar9 = puVar9 + -1;\n        pEVar28 = (Elf32_Ehdr *)*puVar35;\n        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n      }" ({ "{") (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" (identifier "puVar35") (= "=") (binary_expression "puVar35 + 1" (identifier "puVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar40" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar40"))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar28 = (Elf32_Ehdr *)*puVar35" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar35" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar41[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar41[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar41[-1].e_shstrndx" (& "&") (field_expression "pEVar41[-1].e_shstrndx" (subscript_expression "pEVar41[-1]" (identifier "pEVar41") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)pEVar40 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar40 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar40" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar40" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar40"))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)\n              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1])" (( "(") (binary_expression "0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (number_literal "0x20") (- "-") (cast_expression "(uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (binary_expression "((uint)pEVar30 >> 1) - 1" (parenthesized_expression "((uint)pEVar30 >> 1)" (( "(") (binary_expression "(uint)pEVar30 >> 1" (cast_expression "(uint)pEVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar30")) (>> ">>") (number_literal "1")) () ")")) (- "-") (number_literal "1")) (] "]"))))) () ")")))) (; ";")) (expression_statement "iVar8 = 0x1f - (int)pEVar24;" (assignment_expression "iVar8 = 0x1f - (int)pEVar24" (identifier "iVar8") (= "=") (binary_expression "0x1f - (int)pEVar24" (number_literal "0x1f") (- "-") (cast_expression "(int)pEVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar24")))) (; ";")) (expression_statement "pEVar16 = pEVar41;" (assignment_expression "pEVar16 = pEVar41" (identifier "pEVar16") (= "=") (identifier "pEVar41")) (; ";")) (if_statement "if (iVar8 == 0) {\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }\n    else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }\n    }" ({ "{") (if_statement "if (pEVar10 == pEVar41) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" (if "if") (parenthesized_expression "(pEVar10 == pEVar41)" (( "(") (binary_expression "pEVar10 == pEVar41" (identifier "pEVar10") (== "==") (identifier "pEVar41")) () ")")) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);\n        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;\n        do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);\n        pcVar46 = *(code **)(pcVar51 + -0x7b2c);\nLAB_00031264:\n        pEVar28 = pEVar5;\n        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n      }" ({ "{") (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" (identifier "iVar8") (= "=") (binary_expression "*(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4" (pointer_expression "*(int *)(puVar36 + -0x4c)" (* "*") (cast_expression "(int *)(puVar36 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        } while (puVar20 != (undefined1 *)0xffffffff);" (do "do") (compound_statement "{\n          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);\n          puVar20 = puVar20 + -1;\n          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }\n          pbVar14 = pbVar14 + -4;\n          iVar8 = iVar8 + -4;\n        }" ({ "{") (expression_statement "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4)" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)(iVar8 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(iVar8 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -4)" (( "(") (binary_expression "iVar8 + -4" (identifier "iVar8") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "puVar20 = puVar20 + -1;" (assignment_expression "puVar20 = puVar20 + -1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -1" (identifier "puVar20") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" (if "if") (parenthesized_expression "(*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28)" (( "(") (binary_expression "*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28" (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar14 + -4)" (( "(") (binary_expression "pbVar14 + -4" (identifier "pbVar14") (+ "+") (number_literal "-4")) () ")")))) (!= "!=") (identifier "pEVar28")) () ")")) (compound_statement "{\n            pcVar46 = *(code **)(pcVar51 + -0x7b2c);\n            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;\n            goto LAB_00030dd0;\n          }" ({ "{") (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7b2c)" (( "(") (binary_expression "pcVar51 + -0x7b2c" (identifier "pcVar51") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (if_statement "if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;" (if "if") (parenthesized_expression "(pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4))" (( "(") (binary_expression "pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)" (identifier "pEVar28") (< "<") (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + -4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar14 + -4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar14 + -4)" (( "(") (binary_expression "pbVar14 + -4" (identifier "pbVar14") (+ "+") (number_literal "-4")) () ")"))))) () ")")) (goto_statement "goto LAB_00031264;" (goto "goto") (statement_identifier "LAB_00031264") (; ";"))) (goto_statement "goto LAB_00030dd0;" (goto "goto") (statement_identifier "LAB_00030dd0") (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + -4" (identifier "pbVar14") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar8 = iVar8 + -4;" (assignment_expression "iVar8 = iVar8 + -4" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -4" (identifier "iVar8") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar20 != (undefined1 *)0xffffffff)" (( "(") (binary_expression "puVar20 != (undefined1 *)0xffffffff" (identifier "puVar20") (!= "!=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (; ";")) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7b2c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7b2c)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7b2c)" (( "(") (binary_expression "pcVar51 + -0x7b2c" (identifier "pcVar51") (+ "+") (number_literal "-0x7b2c")) () ")"))))) (; ";")) (labeled_statement "LAB_00031264:\n        pEVar28 = pEVar5;" (statement_identifier "LAB_00031264") (: ":") (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" (identifier "pEVar28") (= "=") (identifier "pEVar5")) (; ";"))) (expression_statement "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);" (call_expression "(*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41)" (( "(") (identifier "pEVar5") (, ",") (identifier "pEVar5") (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")")))) (, ",") (identifier "pEVar41") () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" (else "else") (compound_statement "{\n      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;\n      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);\n      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;\n      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;\n      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;\n      do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);\n      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);\n    }" ({ "{") (expression_statement "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + 8) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 8)" (( "(") (binary_expression "puVar36 + 8" (identifier "puVar36") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1)" (( "(") (binary_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1" (parenthesized_expression "((int)pEVar30 << ((uint)pEVar24 & 0x1f))" (( "(") (binary_expression "(int)pEVar30 << ((uint)pEVar24 & 0x1f)" (cast_expression "(int)pEVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar30")) (<< "<<") (parenthesized_expression "((uint)pEVar24 & 0x1f)" (( "(") (binary_expression "(uint)pEVar24 & 0x1f" (cast_expression "(uint)pEVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar24")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;" (assignment_expression "*(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (pointer_expression "*(char **)(puVar36 + -0x80)" (* "*") (cast_expression "(char **)(puVar36 + -0x80)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x80)" (( "(") (binary_expression "puVar36 + -0x80" (identifier "puVar36") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;" (assignment_expression "*(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(puVar36 + -0x7c)" (* "*") (cast_expression "(int *)(puVar36 + -0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7c)" (( "(") (binary_expression "puVar36 + -0x7c" (identifier "puVar36") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar51 + -0x7fcc) + 0x430" (pointer_expression "*(int *)(pcVar51 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcVar51 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar51 + -0x7fcc)" (( "(") (binary_expression "pcVar51 + -0x7fcc" (identifier "pcVar51") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x430"))) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;" (assignment_expression "*(undefined4 *)(puVar36 + -0x60) = 0x3fffffff" (pointer_expression "*(undefined4 *)(puVar36 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (number_literal "0x3fffffff")) (; ";")) (do_statement "do {\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      } while (iVar8 != 0);" (do "do") (compound_statement "{\n        pEVar28 = pEVar5;\n        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);\n        pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }\n        if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }\n        iVar8 = iVar8 + -1;\n        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);\n      }" ({ "{") (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" (identifier "pEVar28") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);" (call_expression "(**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7cac))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7cac)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7cac)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7cac)" (( "(") (binary_expression "pcVar51 + -0x7cac" (identifier "pcVar51") (+ "+") (number_literal "-0x7cac")) () ")"))))) () ")")) (argument_list "(pEVar42,pEVar5,pEVar16)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar5") (, ",") (identifier "pEVar16") () ")"))) (; ";")) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)\n                  ((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0))" (( "(") (binary_expression "(int)pEVar16 * 2 -\n                  (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "2")) (- "-") (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0)" (( "(") (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" (* "*") (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1)" (( "(") (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1" (binary_expression "pEVar42->e_ident_magic_str +\n                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4" (parenthesized_expression "((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60))" (( "(") (binary_expression "(int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)" (binary_expression "(int)pEVar16 * 2" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "2")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x60)" (* "*") (cast_expression "(int *)(puVar36 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")"))))) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }\n        else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" (if "if") (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" (( "(") (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (< "<") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))) () ")")) (compound_statement "{\n          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n        }" ({ "{") (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" (if "if") (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" (identifier "pEVar16") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar32._0_1_ = pEVar42->e_ident_magic_num;\n            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];\n            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];\n            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];\n            pEVar40 = pEVar5;\n            if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }\n            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n            pEVar40->e_ident_magic_str[2] = (char)uVar32;\n          }" ({ "{") (expression_statement "uVar32._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar32._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar32._0_1_" (identifier "uVar32") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar32._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar32._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar32._1_1_" (identifier "uVar32") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar32._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar32._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar32._2_1_" (identifier "uVar32") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar32._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar32._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar32._3_1_" (identifier "uVar32") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" (identifier "pEVar40") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" (if "if") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pbVar14 = &pEVar42->e_ident_class;\n              do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);\n              pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);\n            }" ({ "{") (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" (identifier "pbVar14") (= "=") (pointer_expression "&pEVar42->e_ident_class" (& "&") (field_expression "pEVar42->e_ident_class" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);\n                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);\n                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);\n                pEVar40->e_ident_magic_str[2] = (char)uVar32;\n                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                puVar9 = puVar9 + -1;\n                uVar32 = *(undefined4 *)pbVar14;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                pbVar14 = (byte *)pEVar28;\n              }" ({ "{") (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + 4)" (( "(") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)pbVar14;" (assignment_expression "uVar32 = *(undefined4 *)pbVar14" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" (identifier "pbVar14") (= "=") (cast_expression "(byte *)pEVar28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)\n                        (pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (( "(") (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                        (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" (* "*") (cast_expression "(int *)(puVar36 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (; ";")) (} "}"))) (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar32;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar32" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (} "}"))) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d8c)" (( "(") (binary_expression "pcVar51 + -0x7d8c" (identifier "pcVar51") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" (else "else") (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n          pcVar51 = *(code **)(puVar36 + -0x7c);\n          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          uVar22._0_1_ = pEVar42->e_ident_magic_num;\n          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];\n          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];\n          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];\n          if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }\n          pcVar46 = *(code **)(pcVar51 + -0x7d8c);\n          pEVar28 = pEVar16;\n          pEVar16 = pEVar10;\n        }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x7c)" (* "*") (cast_expression "(code **)(puVar36 + -0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x7c)" (( "(") (binary_expression "puVar36 + -0x7c" (identifier "puVar36") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar49 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0x14)" (( "(") (binary_expression "puVar49 + 0x14" (identifier "puVar49") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x74)" (( "(") (binary_expression "puVar36 + -0x74" (identifier "puVar36") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar49 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x10)" (( "(") (binary_expression "puVar49 + 0x10" (identifier "puVar49") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar36 + -0x44" (identifier "puVar36") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar16") (, ",") (identifier "uVar44") (, ",") (identifier "pEVar10") () ")"))) (; ";")) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar10[-1].e_shstrndx" (& "&") (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" (identifier "pEVar10") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar22._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar22._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar22._0_1_" (identifier "uVar22") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar22._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar22._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar22._1_1_" (identifier "uVar22") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar22._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar22._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar22._2_1_" (identifier "uVar22") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar22._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar22._3_1_" (identifier "uVar22") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }\n          else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" (if "if") (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined1 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n            pEVar5->e_ident_magic_str[2] = (char)uVar22;\n          }" ({ "{") (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar22"))) (; ";")) (} "}")) (else_clause "else {\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" (else "else") (compound_statement "{\n            pEVar40 = pEVar5;\n            pbVar14 = &pEVar42->e_ident_class;\n            do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);\n            **(undefined4 **)(puVar36 + -0x80) = uVar22;\n          }" ({ "{") (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" (identifier "pEVar40") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" (identifier "pbVar14") (= "=") (pointer_expression "&pEVar42->e_ident_class" (& "&") (field_expression "pEVar42->e_ident_class" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);\n              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);\n              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);\n              pEVar40->e_ident_magic_str[2] = (char)uVar22;\n              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);\n              puVar9 = puVar9 + -1;\n              uVar22 = *(undefined4 *)pbVar14;\n              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              pbVar14 = (byte *)pEVar16;\n            }" ({ "{") (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" (identifier "pEVar40") (-> "->") (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 "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (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 "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (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 "pEVar40->e_ident_magic_str[2] = (char)uVar22;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar22" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar22"))) (; ";")) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4)" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + 4)" (( "(") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar22 = *(undefined4 *)pbVar14;" (assignment_expression "uVar22 = *(undefined4 *)pbVar14" (identifier "uVar22") (= "=") (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar14 = (byte *)pEVar16;" (assignment_expression "pbVar14 = (byte *)pEVar16" (identifier "pbVar14") (= "=") (cast_expression "(byte *)pEVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar16"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = uVar22;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = uVar22" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" (* "*") (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" (* "*") (cast_expression "(undefined4 **)(puVar36 + -0x80)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x80)" (( "(") (binary_expression "puVar36 + -0x80" (identifier "puVar36") (+ "+") (number_literal "-0x80")) () ")"))))) (= "=") (identifier "uVar22")) (; ";")) (} "}")))) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7d8c);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7d8c)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7d8c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7d8c)" (( "(") (binary_expression "pcVar51 + -0x7d8c" (identifier "pcVar51") (+ "+") (number_literal "-0x7d8c")) () ")"))))) (; ";")) (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" (identifier "pEVar28") (= "=") (identifier "pEVar16")) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (} "}")))) (if_statement "if ((int)pEVar24 < 0) {\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)pEVar24 < 0)" (( "(") (binary_expression "(int)pEVar24 < 0" (cast_expression "(int)pEVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar24")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          uVar44 = *(undefined4 *)(puVar36 + -100);\n          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;\n          pEVar28 = pEVar5;\n          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);\n          pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -100);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -100)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -100)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -100)" (( "(") (binary_expression "puVar36 + -100" (identifier "puVar36") (+ "+") (number_literal "-100")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + 0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + 0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x10)" (( "(") (binary_expression "puVar49 + 0x10" (identifier "puVar49") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pEVar41")) (; ";")) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" (identifier "pEVar28") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);" (call_expression "(*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44)" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "(pEVar42,pEVar5,pEVar16,uVar44)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar5") (, ",") (identifier "pEVar16") (, ",") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)\n                    (pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1))" (( "(") (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +\n                    (int)(pEVar41->e_ident_magic_str + -1)" (binary_expression "pEVar16->e_ident_magic_str +\n                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "(-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0))" (( "(") (binary_expression "-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" (number_literal "-1") (- "-") (call_expression "(uint)(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)" (( "(") (binary_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" (* "*") (cast_expression "(int *)(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9)" (( "(") (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4 + -9" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4 +\n                                          (int)pEVar16->e_ident_magic_str * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4 +\n                                          *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar42->e_ident_magic_str +\n                                          (int)pEVar41->e_ident_magic_str * 4" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar41->e_ident_magic_str * 4" (cast_expression "(int)pEVar41->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" (* "*") (cast_expression "(int *)(puVar36 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-9")) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")"))) (+ "+") (cast_expression "(int)(pEVar41->e_ident_magic_str + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pEVar41->e_ident_magic_str + -1)" (( "(") (binary_expression "pEVar41->e_ident_magic_str + -1" (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (number_literal "-1")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }\n          else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" (if "if") (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" (( "(") (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (< "<") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))) () ")")) (compound_statement "{\n            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n            if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }\n          }" ({ "{") (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" (if "if") (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" (identifier "pEVar16") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar33._0_1_ = pEVar42->e_ident_magic_num;\n              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];\n              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];\n              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];\n              if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }\n            }" ({ "{") (expression_statement "uVar33._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar33._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar33._0_1_" (identifier "uVar33") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar33._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar33._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar33._1_1_" (identifier "uVar33") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar33._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar33._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar33._2_1_" (identifier "uVar33") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar33._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar33._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar33._3_1_" (identifier "uVar33") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }\n              else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" (if "if") (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined1 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                pEVar5->e_ident_magic_str[2] = (char)uVar33;\n              }" ({ "{") (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar33 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 0x18)" (( "(") (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar33 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 0x10)" (( "(") (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar33 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 8)" (( "(") (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar5->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar33" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar33"))) (; ";")) (} "}")) (else_clause "else {\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" (else "else") (compound_statement "{\n                pEVar40 = pEVar5;\n                pbVar14 = &pEVar42->e_ident_class;\n                do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);\n                *(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;\n              }" ({ "{") (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" (identifier "pEVar40") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pbVar14 = &pEVar42->e_ident_class;" (assignment_expression "pbVar14 = &pEVar42->e_ident_class" (identifier "pbVar14") (= "=") (pointer_expression "&pEVar42->e_ident_class" (& "&") (field_expression "pEVar42->e_ident_class" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_class")))) (; ";")) (do_statement "do {\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);\n                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);\n                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);\n                  pEVar40->e_ident_magic_str[2] = (char)uVar33;\n                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);\n                  puVar9 = puVar9 + -1;\n                  uVar33 = *(undefined4 *)pbVar14;\n                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n                  pbVar14 = (byte *)pEVar28;\n                }" ({ "{") (expression_statement "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);" (assignment_expression "pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18)" (field_expression "pEVar40->e_ident_magic_num" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar33 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 0x18)" (( "(") (binary_expression "(uint)uVar33 >> 0x18" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);" (assignment_expression "pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10)" (subscript_expression "pEVar40->e_ident_magic_str[0]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar33 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 0x10)" (( "(") (binary_expression "(uint)uVar33 >> 0x10" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);" (assignment_expression "pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8)" (subscript_expression "pEVar40->e_ident_magic_str[1]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar33 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar33 >> 8)" (( "(") (binary_expression "(uint)uVar33 >> 8" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar40->e_ident_magic_str[2] = (char)uVar33;" (assignment_expression "pEVar40->e_ident_magic_str[2] = (char)uVar33" (subscript_expression "pEVar40->e_ident_magic_str[2]" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar33" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar33"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(pbVar14 + 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + 4)" (( "(") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar33 = *(undefined4 *)pbVar14;" (assignment_expression "uVar33 = *(undefined4 *)pbVar14" (identifier "uVar33") (= "=") (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pbVar14 = (byte *)pEVar28;" (assignment_expression "pbVar14 = (byte *)pEVar28" (identifier "pbVar14") (= "=") (cast_expression "(byte *)pEVar28" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;" (assignment_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33" (pointer_expression "*(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (* "*") (cast_expression "(undefined4 *)\n                 (pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5)" (( "(") (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4" (binary_expression "pEVar5->e_ident_magic_str +\n                 (int)pEVar16->e_ident_magic_str * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16->e_ident_magic_str * 4" (cast_expression "(int)pEVar16->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "*(int *)(puVar36 + -0x60) * 4" (pointer_expression "*(int *)(puVar36 + -0x60)" (* "*") (cast_expression "(int *)(puVar36 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x60)" (( "(") (binary_expression "puVar36 + -0x60" (identifier "puVar36") (+ "+") (number_literal "-0x60")) () ")")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "-5")) () ")")))) (= "=") (identifier "uVar33")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" (else "else") (compound_statement "{\n            uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n            pcVar51 = *(code **)(puVar36 + -0x7c);\n            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);\n            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n            pcVar51 = *(code **)(puVar36 + -0x88);\n            pEVar28 = *(Elf32_Ehdr **)pEVar42;\n            pEVar27 = pEVar5;\n            pEVar40 = pEVar42;\n            if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }\n          }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x7c);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x7c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x7c)" (* "*") (cast_expression "(code **)(puVar36 + -0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x7c)" (( "(") (binary_expression "puVar36 + -0x7c" (identifier "puVar36") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar49 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0x14)" (( "(") (binary_expression "puVar49 + 0x14" (identifier "puVar49") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x74)" (( "(") (binary_expression "puVar36 + -0x74" (identifier "puVar36") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar49 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x10)" (( "(") (binary_expression "puVar49 + 0x10" (identifier "puVar49") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar36 + -0x44" (identifier "puVar36") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "(*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar16") (, ",") (identifier "uVar44") (, ",") (identifier "pEVar10") () ")"))) (; ";")) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar10[-1].e_shstrndx" (& "&") (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" (identifier "pEVar10") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar42;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar42" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar42" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar42" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar42")))) (; ";")) (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" (identifier "pEVar27") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" (identifier "pEVar40") (= "=") (identifier "pEVar42")) (; ";")) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }\n            else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" (if "if") (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined1 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(Elf32_Ehdr **)pEVar5 = pEVar28;\n              pEVar16 = pEVar10;\n            }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar5 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar5 = pEVar28" (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 "pEVar28")) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" (else "else") (compound_statement "{\n              do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);\n              **(undefined4 **)(puVar36 + -0x80) = pEVar28;\n              pEVar16 = pEVar10;\n            }" ({ "{") (do_statement "do {\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n                *(Elf32_Ehdr **)pEVar27 = pEVar28;\n                puVar9 = puVar9 + -1;\n                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;\n                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;\n                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n              }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar27 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pEVar27 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pEVar27" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar27" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar27"))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar40->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (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"))))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "**(undefined4 **)(puVar36 + -0x80) = pEVar28;" (assignment_expression "**(undefined4 **)(puVar36 + -0x80) = pEVar28" (pointer_expression "**(undefined4 **)(puVar36 + -0x80)" (* "*") (pointer_expression "*(undefined4 **)(puVar36 + -0x80)" (* "*") (cast_expression "(undefined4 **)(puVar36 + -0x80)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x80)" (( "(") (binary_expression "puVar36 + -0x80" (identifier "puVar36") (+ "+") (number_literal "-0x80")) () ")"))))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);" (assignment_expression "pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1)" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar24 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar24 << 1)" (( "(") (binary_expression "(int)pEVar24 << 1" (cast_expression "(int)pEVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar24")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);" (assignment_expression "pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8)" (identifier "pEVar30") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 8)" (( "(") (binary_expression "puVar36 + 8" (identifier "puVar36") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00030dd0:\n    pEVar27 = (Elf32_Ehdr *)0x0;" (statement_identifier "LAB_00030dd0") (: ":") (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"))) (; ";"))) (expression_statement "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);" (assignment_expression "pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c)" (identifier "pEVar40") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x6c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x6c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x6c)" (( "(") (binary_expression "puVar36 + -0x6c" (identifier "puVar36") (+ "+") (number_literal "-0x6c")) () ")"))))) (; ";")) (if_statement "if (pEVar40 == (Elf32_Ehdr *)0x0) {\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }\n    else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" (if "if") (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" (identifier "pEVar40") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      piVar39 = *(int **)(puVar36 + -0x54);\n      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }\n      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      pEVar28 = *(Elf32_Ehdr **)pEVar5;\n      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);\n      puVar35 = puVar31;\n      pEVar30 = pEVar5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }\n      *puVar31 = pEVar28;\n    }" ({ "{") (labeled_statement "LAB_00030ddc:\n      if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" (statement_identifier "LAB_00030ddc") (: ":") (if_statement "if ((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" (if "if") (parenthesized_expression "((0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0))" (( "(") (binary_expression "(0 < (int)pEVar16) &&\n         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" (parenthesized_expression "(0 < (int)pEVar16)" (( "(") (binary_expression "0 < (int)pEVar16" (number_literal "0") (< "<") (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)" (( "(") (binary_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0" (pointer_expression "*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (* "*") (cast_expression "(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n        do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);\n      }" ({ "{") (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        } while (*(int *)pcVar18 == 0);" (do "do") (compound_statement "{\n          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);\n          if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }\n          pcVar18 = (char *)(pbVar14 + -8);\n          pbVar14 = pbVar14 + -4;\n        }" ({ "{") (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) {\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" (if "if") (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" (identifier "pEVar16") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n            piVar39 = *(int **)(puVar36 + -0x54);\n            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;\n            goto LAB_00030f08;\n          }" ({ "{") (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar30 & 1)" (( "(") (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar30")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))\n            goto LAB_00030e34;" (if "if") (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" (( "(") (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" (identifier "pEVar40") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (( "(") (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" (* "*") (cast_expression "(int *)(puVar36 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x5c)" (( "(") (binary_expression "puVar36 + -0x5c" (identifier "puVar36") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (goto_statement "goto LAB_00030e34;" (goto "goto") (statement_identifier "LAB_00030e34") (; ";"))) (goto_statement "goto LAB_00030f08;" (goto "goto") (statement_identifier "LAB_00030f08") (; ";")) (} "}"))) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" (identifier "pcVar18") (= "=") (cast_expression "(char *)(pbVar14 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + -8)" (( "(") (binary_expression "pbVar14 + -8" (identifier "pbVar14") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + -4" (identifier "pbVar14") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)pcVar18 == 0)" (( "(") (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18"))) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar30 & 1)" (( "(") (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar30")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (if_statement "if ((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }\n      else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" (if "if") (parenthesized_expression "((pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))" (( "(") (binary_expression "(pEVar40 == (Elf32_Ehdr *)0x0) ||\n         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (parenthesized_expression "(pEVar40 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar40 == (Elf32_Ehdr *)0x0" (identifier "pEVar40") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))" (( "(") (comma_expression "piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (, ",") (binary_expression "-1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(puVar36 + -0x5c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x5c) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x5c) + 4" (pointer_expression "*(int *)(puVar36 + -0x5c)" (* "*") (cast_expression "(int *)(puVar36 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x5c)" (( "(") (binary_expression "puVar36 + -0x5c" (identifier "puVar36") (+ "+") (number_literal "-0x5c")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) () ")"))) () ")")) (compound_statement "{\nLAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);\n        if (*piVar39 < (int)pEVar16) goto LAB_00031474;\nLAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;\n      }" ({ "{") (labeled_statement "LAB_00030e34:\n        pcVar46 = *(code **)(pcVar51 + -0x7a84);" (statement_identifier "LAB_00030e34") (: ":") (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7a84)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7a84)" (( "(") (binary_expression "pcVar51 + -0x7a84" (identifier "pcVar51") (+ "+") (number_literal "-0x7a84")) () ")"))))) (; ";"))) (if_statement "if (*piVar39 < (int)pEVar16) goto LAB_00031474;" (if "if") (parenthesized_expression "(*piVar39 < (int)pEVar16)" (( "(") (binary_expression "*piVar39 < (int)pEVar16" (pointer_expression "*piVar39" (* "*") (identifier "piVar39")) (< "<") (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16"))) () ")")) (goto_statement "goto LAB_00031474;" (goto "goto") (statement_identifier "LAB_00031474") (; ";"))) (labeled_statement "LAB_00030e44:\n        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (statement_identifier "LAB_00030e44") (: ":") (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar30 & 1)" (( "(") (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar30")) (& "&") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" (* "*") (cast_expression "(int *)(puVar36 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pEVar16")) (; ";")) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;" (if "if") (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" (identifier "pEVar16") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030e94;" (goto "goto") (statement_identifier "LAB_00030e94") (; ";"))) (} "}")) (else_clause "else {\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" (else "else") (compound_statement "{\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;\n        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);\n        pEVar28 = pEVar24;\n        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);\n        iVar13._0_1_ = pEVar27->e_ident_magic_num;\n        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];\n        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];\n        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];\n        if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }\n        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }\n        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;\n      }" ({ "{") (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;" (if "if") (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" (identifier "pEVar16") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030f04;" (goto "goto") (statement_identifier "LAB_00030f04") (; ";"))) (expression_statement "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" (identifier "pEVar24") (= "=") (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x68) + 8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x68) + 8" (pointer_expression "*(int *)(puVar36 + -0x68)" (* "*") (cast_expression "(int *)(puVar36 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x68)" (( "(") (binary_expression "puVar36 + -0x68" (identifier "puVar36") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar28 = pEVar24;" (assignment_expression "pEVar28 = pEVar24" (identifier "pEVar28") (= "=") (identifier "pEVar24")) (; ";")) (expression_statement "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);" (assignment_expression "iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7b2c))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7b2c)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7b2c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7b2c)" (( "(") (binary_expression "pcVar51 + -0x7b2c" (identifier "pcVar51") (+ "+") (number_literal "-0x7b2c")) () ")"))))) () ")")) (argument_list "(pEVar5,pEVar24,pEVar5,pEVar16)" (( "(") (identifier "pEVar5") (, ",") (identifier "pEVar24") (, ",") (identifier "pEVar5") (, ",") (identifier "pEVar16") () ")")))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }\n        else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;\n          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n          do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" ({ "{") (labeled_statement "LAB_000314a0:\n          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" (statement_identifier "LAB_000314a0") (: ":") (if_statement "if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;" (if "if") (parenthesized_expression "((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16))" (( "(") (binary_expression "(pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)" (parenthesized_expression "(pEVar5 == pEVar24)" (( "(") (binary_expression "pEVar5 == pEVar24" (identifier "pEVar5") (== "==") (identifier "pEVar24")) () ")")) (|| "||") (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" (( "(") (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (<= "<=") (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16"))) () ")"))) () ")")) (goto_statement "goto LAB_00031130;" (goto "goto") (statement_identifier "LAB_00031130") (; ";")))) (expression_statement "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (( "(") (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x70)" (* "*") (cast_expression "(int *)(puVar36 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);" (do "do") (compound_statement "{\n            uVar44 = *(undefined4 *)pbVar15;\n            pbVar15 = pbVar15 + 4;\n            *(undefined4 *)pbVar14 = uVar44;\n            pbVar14 = pbVar14 + 4;\n          }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)pbVar15" (* "*") (cast_expression "(undefined4 *)pbVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 4" (identifier "pbVar15") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14"))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar28 != (Elf32_Ehdr *)pbVar15)" (( "(") (binary_expression "pEVar28 != (Elf32_Ehdr *)pbVar15" (identifier "pEVar28") (!= "!=") (cast_expression "(Elf32_Ehdr *)pbVar15" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar15"))) () ")")) (; ";")) (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" (else "else") (compound_statement "{\n          if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }\nLAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);\n        }" ({ "{") (if_statement "if ((int)pEVar16 < (int)pEVar10) {\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" (if "if") (parenthesized_expression "((int)pEVar16 < (int)pEVar10)" (( "(") (binary_expression "(int)pEVar16 < (int)pEVar10" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (< "<") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))) () ")")) (compound_statement "{\n            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);\n            pEVar28 = *(Elf32_Ehdr **)pbVar14;\n            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);\n            pEVar27 = pEVar28;\n            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }\n            goto LAB_000314a0;\n          }" ({ "{") (expression_statement "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar24->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar24->e_ident_magic_str" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1" (binary_expression "pEVar5->e_ident_magic_str + (int)pEVar16 * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pbVar14;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pbVar14" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)pbVar14" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar14" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);" (assignment_expression "*(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" (pointer_expression "*(undefined1 **)pbVar15" (* "*") (cast_expression "(undefined1 **)pbVar15" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar15"))) (= "=") (cast_expression "(undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar28[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar28[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar28[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar28[-1].e_shstrndx" (& "&") (field_expression "pEVar28[-1].e_shstrndx" (subscript_expression "pEVar28[-1]" (identifier "pEVar28") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar27 = pEVar28;" (assignment_expression "pEVar27 = pEVar28" (identifier "pEVar27") (= "=") (identifier "pEVar28")) (; ";")) (while_statement "while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)\n            {\n              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" (while "while") (parenthesized_expression "(pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)" (( "(") (comma_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0" (assignment_expression "pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)pEVar16->e_ident_magic_str" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str")))) (, ",") (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              pbVar15 = pbVar15 + 4;\n              if (pEVar10 == pEVar16) goto LAB_00031130;\n              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);\n              pbVar14 = pbVar14 + 4;\n              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);\n              *(Elf32_Ehdr **)pbVar15 = pEVar28;\n            }" ({ "{") (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 4" (identifier "pbVar15") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (pEVar10 == pEVar16) goto LAB_00031130;" (if "if") (parenthesized_expression "(pEVar10 == pEVar16)" (( "(") (binary_expression "pEVar10 == pEVar16" (identifier "pEVar10") (== "==") (identifier "pEVar16")) () ")")) (goto_statement "goto LAB_00031130;" (goto "goto") (statement_identifier "LAB_00031130") (; ";"))) (expression_statement "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4)" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)(pbVar14 + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(pbVar14 + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar14 + 4)" (( "(") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);" (assignment_expression "pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" (identifier "pEVar28") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar27[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar27[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar27[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar27[-1].e_shstrndx" (& "&") (field_expression "pEVar27[-1].e_shstrndx" (subscript_expression "pEVar27[-1]" (identifier "pEVar27") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar28" (pointer_expression "*(Elf32_Ehdr **)pbVar15" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar15" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar15"))) (= "=") (identifier "pEVar28")) (; ";")) (} "}"))) (goto_statement "goto LAB_000314a0;" (goto "goto") (statement_identifier "LAB_000314a0") (; ";")) (} "}"))) (labeled_statement "LAB_00031130:\n          iVar8 = *(int *)(puVar36 + -0x50);" (statement_identifier "LAB_00031130") (: ":") (expression_statement "iVar8 = *(int *)(puVar36 + -0x50);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x50)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + iVar8 + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar5->e_ident_magic_str + iVar8" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar13._0_1_ = pEVar27->e_ident_magic_num;" (assignment_expression "iVar13._0_1_ = pEVar27->e_ident_magic_num" (field_expression "iVar13._0_1_" (identifier "iVar13") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar27->e_ident_magic_num" (identifier "pEVar27") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "iVar13._1_1_ = pEVar27->e_ident_magic_str[0];" (assignment_expression "iVar13._1_1_ = pEVar27->e_ident_magic_str[0]" (field_expression "iVar13._1_1_" (identifier "iVar13") (. ".") (field_identifier "_1_1_")) (= "=") (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") (] "]"))) (; ";")) (expression_statement "iVar13._2_1_ = pEVar27->e_ident_magic_str[1];" (assignment_expression "iVar13._2_1_ = pEVar27->e_ident_magic_str[1]" (field_expression "iVar13._2_1_" (identifier "iVar13") (. ".") (field_identifier "_2_1_")) (= "=") (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") (] "]"))) (; ";")) (expression_statement "iVar13._3_1_ = pEVar27->e_ident_magic_str[2];" (assignment_expression "iVar13._3_1_ = pEVar27->e_ident_magic_str[2]" (field_expression "iVar13._3_1_" (identifier "iVar13") (. ".") (field_identifier "_3_1_")) (= "=") (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") (] "]"))) (; ";")) (if_statement "if (iVar13 == 0) {\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = *(int *)(puVar36 + -0x78);\n          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);\n          do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);\n          *(int *)(puVar36 + -0x78) = iVar8;\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar36 + -0x78);" (assignment_expression "iVar8 = *(int *)(puVar36 + -0x78)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar36 + -0x78)" (* "*") (cast_expression "(int *)(puVar36 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);" (assignment_expression "pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70)" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x70)" (* "*") (cast_expression "(int *)(puVar36 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x70)" (( "(") (binary_expression "puVar36 + -0x70" (identifier "puVar36") (+ "+") (number_literal "-0x70")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          } while (*(int *)pcVar18 == 0);" (do "do") (compound_statement "{\n            iVar8 = iVar8 + -1;\n            if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }\n            pcVar18 = (char *)(pbVar14 + -8);\n            pbVar14 = pbVar14 + -4;\n          }" ({ "{") (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar39 = *(int **)(puVar36 + -0x54);\n              goto LAB_00030f08;\n            }" ({ "{") (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030f08;" (goto "goto") (statement_identifier "LAB_00030f08") (; ";")) (} "}"))) (expression_statement "pcVar18 = (char *)(pbVar14 + -8);" (assignment_expression "pcVar18 = (char *)(pbVar14 + -8)" (identifier "pcVar18") (= "=") (cast_expression "(char *)(pbVar14 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + -8)" (( "(") (binary_expression "pbVar14 + -8" (identifier "pbVar14") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + -4;" (assignment_expression "pbVar14 = pbVar14 + -4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + -4" (identifier "pbVar14") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)pcVar18 == 0)" (( "(") (binary_expression "*(int *)pcVar18 == 0" (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18"))) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(int *)(puVar36 + -0x78) = iVar8;" (assignment_expression "*(int *)(puVar36 + -0x78) = iVar8" (pointer_expression "*(int *)(puVar36 + -0x78)" (* "*") (cast_expression "(int *)(puVar36 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (if_statement "if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" (if "if") (parenthesized_expression "(**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78))" (( "(") (binary_expression "**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)" (pointer_expression "**(int **)(puVar36 + -0x54)" (* "*") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (< "<") (pointer_expression "*(int *)(puVar36 + -0x78)" (* "*") (cast_expression "(int *)(puVar36 + -0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")"))))) () ")")) (compound_statement "{\n          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);\n          pcVar46 = *(code **)(pcVar51 + -0x7a84);\nLAB_00031474:\n          pEVar28 = pEVar16;\n          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));\n          pcVar51 = *(code **)(puVar36 + -0x88);\n          goto LAB_00030e44;\n        }" ({ "{") (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" (identifier "pEVar16") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "pcVar46 = *(code **)(pcVar51 + -0x7a84);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + -0x7a84)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7a84)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7a84)" (( "(") (binary_expression "pcVar51 + -0x7a84" (identifier "pcVar51") (+ "+") (number_literal "-0x7a84")) () ")"))))) (; ";")) (labeled_statement "LAB_00031474:\n          pEVar28 = pEVar16;" (statement_identifier "LAB_00031474") (: ":") (expression_statement "pEVar28 = pEVar16;" (assignment_expression "pEVar28 = pEVar16" (identifier "pEVar28") (= "=") (identifier "pEVar16")) (; ";"))) (expression_statement "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54));" (call_expression "(*pcVar46)(*(undefined4 *)(puVar36 + -0x54))" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "(*(undefined4 *)(puVar36 + -0x54))" (( "(") (pointer_expression "*(undefined4 *)(puVar36 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030e44;" (goto "goto") (statement_identifier "LAB_00030e44") (; ";")) (} "}"))) (expression_statement "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);" (assignment_expression "pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78)" (identifier "pEVar16") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x78)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x78)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x78)" (( "(") (binary_expression "puVar36 + -0x78" (identifier "puVar36") (+ "+") (number_literal "-0x78")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" (* "*") (cast_expression "(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" (* "*") (cast_expression "(int *)(puVar36 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pEVar16")) (; ";")) (} "}")))) (expression_statement "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar30 & 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar30 & 1)" (( "(") (binary_expression "(uint)pEVar30 & 1" (cast_expression "(uint)pEVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar30")) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)pEVar5;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)pEVar5" (identifier "pEVar28") (= "=") (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")))) (; ";")) (expression_statement "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);" (assignment_expression "puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" (identifier "puVar31") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" (* "*") (cast_expression "(undefined4 **)(*(int *)(puVar36 + -0x54) + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x54) + 8" (pointer_expression "*(int *)(puVar36 + -0x54)" (* "*") (cast_expression "(int *)(puVar36 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar35 = puVar31;" (assignment_expression "puVar35 = puVar31" (identifier "puVar35") (= "=") (identifier "puVar31")) (; ";")) (expression_statement "pEVar30 = pEVar5;" (assignment_expression "pEVar30 = pEVar5" (identifier "pEVar30") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" (if "if") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);\n      }" ({ "{") (do_statement "do {\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n          *puVar35 = pEVar28;\n          puVar9 = puVar9 + -1;\n          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;\n          puVar35 = puVar35 + 1;\n          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;\n        }" ({ "{") (expression_statement "*puVar35 = pEVar28;" (assignment_expression "*puVar35 = pEVar28" (pointer_expression "*puVar35" (* "*") (identifier "puVar35")) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;" (assignment_expression "pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class" (identifier "pEVar28") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar30->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar30->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar30->e_ident_class" (& "&") (field_expression "pEVar30->e_ident_class" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" (identifier "puVar35") (= "=") (binary_expression "puVar35 + 1" (identifier "puVar35") (+ "+") (number_literal "1"))) (; ";")) (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"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar31") (= "=") (binary_expression "puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar31") (+ "+") (cast_expression "(int)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*puVar31 = pEVar28;" (assignment_expression "*puVar31 = pEVar28" (pointer_expression "*puVar31" (* "*") (identifier "puVar31")) (= "=") (identifier "pEVar28")) (; ";")) (} "}")) (else_clause "else {\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);\n      iVar26 = *(int *)(puVar36 + -0x88);\n      iVar8 = (int)pEVar16 * 4;\n      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));\n      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;\n      pEVar24 = pEVar40;\n      if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }\n      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);\n      if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }\n      pEVar28 = pEVar5;\n      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);\n      pcVar51 = *(code **)(puVar36 + -0x88);\n      pEVar40 = pEVar30;\nLAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);\nLAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }\n    }" ({ "{") (expression_statement "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);" (assignment_expression "iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" (identifier "iVar37") (= "=") (call_expression "(**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7ad4))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7ad4)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7ad4)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7ad4)" (( "(") (binary_expression "pcVar51 + -0x7ad4" (identifier "pcVar51") (+ "+") (number_literal "-0x7ad4")) () ")"))))) () ")")) (argument_list "(pEVar42,pEVar5,pEVar16,pEVar40)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar5") (, ",") (identifier "pEVar16") (, ",") (identifier "pEVar40") () ")")))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar36 + -0x88)" (* "*") (cast_expression "(int *)(puVar36 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "iVar8 = (int)pEVar16 * 4;" (assignment_expression "iVar8 = (int)pEVar16 * 4" (identifier "iVar8") (= "=") (binary_expression "(int)pEVar16 * 4" (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));" (assignment_expression "pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1))" (( "(") (binary_expression "pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1)" (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "((iVar37 != 0) - 1)" (( "(") (binary_expression "(iVar37 != 0) - 1" (parenthesized_expression "(iVar37 != 0)" (( "(") (binary_expression "iVar37 != 0" (identifier "iVar37") (!= "!=") (number_literal "0")) () ")")) (- "-") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;" (assignment_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37" (pointer_expression "*(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" (* "*") (cast_expression "(int *)(pEVar42->e_ident_magic_str + iVar8 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar42->e_ident_magic_str + iVar8 + -1)" (( "(") (binary_expression "pEVar42->e_ident_magic_str + iVar8 + -1" (binary_expression "pEVar42->e_ident_magic_str + iVar8" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "iVar37")) (; ";")) (expression_statement "pEVar24 = pEVar40;" (assignment_expression "pEVar24 = pEVar40" (identifier "pEVar24") (= "=") (identifier "pEVar40")) (; ";")) (if_statement "if ((int)pEVar10 <= (int)pEVar16) {\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" (if "if") (parenthesized_expression "((int)pEVar10 <= (int)pEVar16)" (( "(") (binary_expression "(int)pEVar10 <= (int)pEVar16" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (<= "<=") (cast_expression "(int)pEVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar16"))) () ")")) (compound_statement "{\n        uVar44 = *(undefined4 *)(puVar36 + -0x4c);\n        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);\n        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;\n        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);\n        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);\n        iVar26 = *(int *)(puVar36 + -0x88);\n        uVar25._0_1_ = pEVar42->e_ident_magic_num;\n        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar16 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }\nLAB_000312bc:\n        pEVar28 = pEVar5;\n        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        goto LAB_00030ddc;\n      }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)(puVar36 + -0x4c);" (assignment_expression "uVar44 = *(undefined4 *)(puVar36 + -0x4c)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x4c)" (( "(") (binary_expression "puVar36 + -0x4c" (identifier "puVar36") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);" (assignment_expression "*(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74)" (pointer_expression "*(undefined4 *)(puVar49 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar49 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + 0x14)" (( "(") (binary_expression "puVar49 + 0x14" (identifier "puVar49") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar36 + -0x74)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x74)" (( "(") (binary_expression "puVar36 + -0x74" (identifier "puVar36") (+ "+") (number_literal "-0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;" (assignment_expression "*(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44" (pointer_expression "*(undefined1 **)(puVar49 + 0x10)" (* "*") (cast_expression "(undefined1 **)(puVar49 + 0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + 0x10)" (( "(") (binary_expression "puVar49 + 0x10" (identifier "puVar49") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "puVar36 + -0x44" (identifier "puVar36") (+ "+") (number_literal "-0x44"))) (; ";")) (expression_statement "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);" (call_expression "FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10)" (identifier "FUN_00030430") (argument_list "(pEVar42,pEVar16,uVar44,pEVar10)" (( "(") (identifier "pEVar42") (, ",") (identifier "pEVar16") (, ",") (identifier "uVar44") (, ",") (identifier "pEVar10") () ")"))) (; ";")) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar10[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar10[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar10[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar10[-1].e_shstrndx" (& "&") (field_expression "pEVar10[-1].e_shstrndx" (subscript_expression "pEVar10[-1]" (identifier "pEVar10") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar36 + -0x88);" (assignment_expression "iVar26 = *(int *)(puVar36 + -0x88)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar36 + -0x88)" (* "*") (cast_expression "(int *)(puVar36 + -0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "uVar25._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar25._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar25._0_1_" (identifier "uVar25") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar25._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar25._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar25._1_1_" (identifier "uVar25") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar25._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar25._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar25._2_1_" (identifier "uVar25") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar25._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar25._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar25._3_1_" (identifier "uVar25") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" (identifier "pEVar16") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" (identifier "pEVar40") (= "=") (identifier "pEVar42")) (; ";")) (if_statement "if (puVar9 == (undefined1 *)0x0) {\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }\n        else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" (if "if") (parenthesized_expression "(puVar9 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined1 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n          pEVar5->e_ident_magic_str[2] = (char)uVar25;\n          pEVar16 = pEVar10;\n        }" ({ "{") (expression_statement "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar5->e_ident_magic_num" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar5->e_ident_magic_str[0]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar5->e_ident_magic_str[1]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (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 "pEVar5->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar5->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar5->e_ident_magic_str[2]" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" (else "else") (compound_statement "{\n          do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;\n          pEVar16 = pEVar10;\n        }" ({ "{") (do_statement "do {\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);\n            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);\n            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);\n            pEVar16->e_ident_magic_str[2] = (char)uVar25;\n            puVar9 = puVar9 + -1;\n            uVar25._0_1_ = pEVar40->e_ident_class;\n            uVar25._1_1_ = pEVar40->e_ident_data;\n            uVar25._2_1_ = pEVar40->e_ident_version;\n            uVar25._3_1_ = pEVar40->e_ident_osabi;\n            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);" (assignment_expression "pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18)" (field_expression "pEVar16->e_ident_magic_num" (identifier "pEVar16") (-> "->") (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 "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);" (assignment_expression "pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10)" (subscript_expression "pEVar16->e_ident_magic_str[0]" (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (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 "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);" (assignment_expression "pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8)" (subscript_expression "pEVar16->e_ident_magic_str[1]" (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (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 "pEVar16->e_ident_magic_str[2] = (char)uVar25;" (assignment_expression "pEVar16->e_ident_magic_str[2] = (char)uVar25" (subscript_expression "pEVar16->e_ident_magic_str[2]" (field_expression "pEVar16->e_ident_magic_str" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar25" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar25._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar25._0_1_ = pEVar40->e_ident_class" (field_expression "uVar25._0_1_" (identifier "uVar25") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar25._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar25._1_1_ = pEVar40->e_ident_data" (field_expression "uVar25._1_1_" (identifier "uVar25") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar40->e_ident_data" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar25._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar25._2_1_ = pEVar40->e_ident_version" (field_expression "uVar25._2_1_" (identifier "uVar25") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar40->e_ident_version" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar25._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar25._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar25._3_1_" (identifier "uVar25") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar40->e_ident_osabi" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;" (assignment_expression "pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar16->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar16->e_ident_class" (& "&") (field_expression "pEVar16->e_ident_class" (identifier "pEVar16") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;" (assignment_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25" (pointer_expression "*(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (* "*") (cast_expression "(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1" (binary_expression "pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50)" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (pointer_expression "*(int *)(puVar36 + -0x50)" (* "*") (cast_expression "(int *)(puVar36 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x50)" (( "(") (binary_expression "puVar36 + -0x50" (identifier "puVar36") (+ "+") (number_literal "-0x50")) () ")"))))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "pEVar16 = pEVar10;" (assignment_expression "pEVar16 = pEVar10" (identifier "pEVar16") (= "=") (identifier "pEVar10")) (; ";")) (} "}")))) (labeled_statement "LAB_000312bc:\n        pEVar28 = pEVar5;" (statement_identifier "LAB_000312bc") (: ":") (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" (identifier "pEVar28") (= "=") (identifier "pEVar5")) (; ";"))) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar26 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar26 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar26 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + -0x7ae0)" (( "(") (binary_expression "iVar26 + -0x7ae0" (identifier "iVar26") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c))" (( "(") (identifier "pEVar5") (, ",") (identifier "pEVar5") (, ",") (identifier "pEVar16") (, ",") (pointer_expression "*(undefined4 *)(puVar36 + -0x6c)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x6c)" (( "(") (binary_expression "puVar36 + -0x6c" (identifier "puVar36") (+ "+") (number_literal "-0x6c")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030ddc;" (goto "goto") (statement_identifier "LAB_00030ddc") (; ";")) (} "}"))) (expression_statement "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar16[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar16[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar16 != (Elf32_Ehdr *)0x0) {\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" (if "if") (parenthesized_expression "(pEVar16 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 != (Elf32_Ehdr *)0x0" (identifier "pEVar16") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar29._0_1_ = pEVar42->e_ident_magic_num;\n        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];\n        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];\n        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];\n        pEVar7 = pEVar5;\n        pEVar40 = pEVar42;\n        if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }\n        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n        pEVar7->e_ident_magic_str[2] = (char)uVar29;\n        goto LAB_000312bc;\n      }" ({ "{") (expression_statement "uVar29._0_1_ = pEVar42->e_ident_magic_num;" (assignment_expression "uVar29._0_1_ = pEVar42->e_ident_magic_num" (field_expression "uVar29._0_1_" (identifier "uVar29") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar42->e_ident_magic_num" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_num"))) (; ";")) (expression_statement "uVar29._1_1_ = pEVar42->e_ident_magic_str[0];" (assignment_expression "uVar29._1_1_ = pEVar42->e_ident_magic_str[0]" (field_expression "uVar29._1_1_" (identifier "uVar29") (. ".") (field_identifier "_1_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[0]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar29._2_1_ = pEVar42->e_ident_magic_str[1];" (assignment_expression "uVar29._2_1_ = pEVar42->e_ident_magic_str[1]" (field_expression "uVar29._2_1_" (identifier "uVar29") (. ".") (field_identifier "_2_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[1]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar29._3_1_ = pEVar42->e_ident_magic_str[2];" (assignment_expression "uVar29._3_1_ = pEVar42->e_ident_magic_str[2]" (field_expression "uVar29._3_1_" (identifier "uVar29") (. ".") (field_identifier "_3_1_")) (= "=") (subscript_expression "pEVar42->e_ident_magic_str[2]" (field_expression "pEVar42->e_ident_magic_str" (identifier "pEVar42") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pEVar7 = pEVar5;" (assignment_expression "pEVar7 = pEVar5" (identifier "pEVar7") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar40 = pEVar42;" (assignment_expression "pEVar40 = pEVar42" (identifier "pEVar40") (= "=") (identifier "pEVar42")) (; ";")) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" (if "if") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);\n          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);\n        }" ({ "{") (do_statement "do {\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);\n            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);\n            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);\n            pEVar7->e_ident_magic_str[2] = (char)uVar29;\n            puVar9 = puVar9 + -1;\n            uVar29._0_1_ = pEVar40->e_ident_class;\n            uVar29._1_1_ = pEVar40->e_ident_data;\n            uVar29._2_1_ = pEVar40->e_ident_version;\n            uVar29._3_1_ = pEVar40->e_ident_osabi;\n            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;\n          }" ({ "{") (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar29 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 0x18)" (( "(") (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar29 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 0x10)" (( "(") (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar29 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 8)" (( "(") (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar29" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar29"))) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar29._0_1_ = pEVar40->e_ident_class;" (assignment_expression "uVar29._0_1_ = pEVar40->e_ident_class" (field_expression "uVar29._0_1_" (identifier "uVar29") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar29._1_1_ = pEVar40->e_ident_data;" (assignment_expression "uVar29._1_1_ = pEVar40->e_ident_data" (field_expression "uVar29._1_1_" (identifier "uVar29") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "pEVar40->e_ident_data" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar29._2_1_ = pEVar40->e_ident_version;" (assignment_expression "uVar29._2_1_ = pEVar40->e_ident_version" (field_expression "uVar29._2_1_" (identifier "uVar29") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "pEVar40->e_ident_version" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar29._3_1_ = pEVar40->e_ident_osabi;" (assignment_expression "uVar29._3_1_ = pEVar40->e_ident_osabi" (field_expression "uVar29._3_1_" (identifier "uVar29") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "pEVar40->e_ident_osabi" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar7->e_ident_class" (& "&") (field_expression "pEVar7->e_ident_class" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar40->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar40->e_ident_class" (& "&") (field_expression "pEVar40->e_ident_class" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4" (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar16[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar16[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar16[-1].e_shstrndx" (& "&") (field_expression "pEVar16[-1].e_shstrndx" (subscript_expression "pEVar16[-1]" (identifier "pEVar16") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);" (assignment_expression "pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18)" (field_expression "pEVar7->e_ident_magic_num" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)uVar29 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 0x18)" (( "(") (binary_expression "(uint)uVar29 >> 0x18" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);" (assignment_expression "pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10)" (subscript_expression "pEVar7->e_ident_magic_str[0]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar29 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 0x10)" (( "(") (binary_expression "(uint)uVar29 >> 0x10" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);" (assignment_expression "pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8)" (subscript_expression "pEVar7->e_ident_magic_str[1]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar29 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar29 >> 8)" (( "(") (binary_expression "(uint)uVar29 >> 8" (cast_expression "(uint)uVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar29")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pEVar7->e_ident_magic_str[2] = (char)uVar29;" (assignment_expression "pEVar7->e_ident_magic_str[2] = (char)uVar29" (subscript_expression "pEVar7->e_ident_magic_str[2]" (field_expression "pEVar7->e_ident_magic_str" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar29" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar29"))) (; ";")) (goto_statement "goto LAB_000312bc;" (goto "goto") (statement_identifier "LAB_000312bc") (; ";")) (} "}"))) (expression_statement "pEVar28 = pEVar5;" (assignment_expression "pEVar28 = pEVar5" (identifier "pEVar28") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);" (call_expression "(**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40)" (parenthesized_expression "(**(code **)(iVar26 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(iVar26 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(iVar26 + -0x7ae0)" (* "*") (cast_expression "(code **)(iVar26 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + -0x7ae0)" (( "(") (binary_expression "iVar26 + -0x7ae0" (identifier "iVar26") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(pEVar5,pEVar5,0,pEVar40)" (( "(") (identifier "pEVar5") (, ",") (identifier "pEVar5") (, ",") (number_literal "0") (, ",") (identifier "pEVar40") () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar40 = pEVar30;" (assignment_expression "pEVar40 = pEVar30" (identifier "pEVar40") (= "=") (identifier "pEVar30")) (; ";")) (labeled_statement "LAB_00030f04:\n      piVar39 = *(int **)(puVar36 + -0x54);" (statement_identifier "LAB_00030f04") (: ":") (expression_statement "piVar39 = *(int **)(puVar36 + -0x54);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x54)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x54)" (* "*") (cast_expression "(int **)(puVar36 + -0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";"))) (labeled_statement "LAB_00030f08:\n      if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" (statement_identifier "LAB_00030f08") (: ":") (if_statement "if (*piVar39 < 0) {\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }\n      else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" (if "if") (parenthesized_expression "(*piVar39 < 0)" (( "(") (binary_expression "*piVar39 < 0" (pointer_expression "*piVar39" (* "*") (identifier "piVar39")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);\n        pEVar28 = (Elf32_Ehdr *)0x0;\n        (**(code **)(pcVar51 + -0x7a84))(pEVar24);\n        pcVar51 = *(code **)(puVar36 + -0x88);\n        pEVar24->e_ident_class = 0;\n        pEVar24->e_ident_data = 0;\n        pEVar24->e_ident_version = 0;\n        pEVar24->e_ident_osabi = 0;\n      }" ({ "{") (expression_statement "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);" (assignment_expression "pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54)" (identifier "pEVar24") (= "=") (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x54)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x54)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (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 "(**(code **)(pcVar51 + -0x7a84))(pEVar24);" (call_expression "(**(code **)(pcVar51 + -0x7a84))(pEVar24)" (parenthesized_expression "(**(code **)(pcVar51 + -0x7a84))" (( "(") (pointer_expression "**(code **)(pcVar51 + -0x7a84)" (* "*") (pointer_expression "*(code **)(pcVar51 + -0x7a84)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7a84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7a84)" (( "(") (binary_expression "pcVar51 + -0x7a84" (identifier "pcVar51") (+ "+") (number_literal "-0x7a84")) () ")"))))) () ")")) (argument_list "(pEVar24)" (( "(") (identifier "pEVar24") () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (expression_statement "pEVar24->e_ident_class = 0;" (assignment_expression "pEVar24->e_ident_class = 0" (field_expression "pEVar24->e_ident_class" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_class")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar24->e_ident_data = 0;" (assignment_expression "pEVar24->e_ident_data = 0" (field_expression "pEVar24->e_ident_data" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_data")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar24->e_ident_version = 0;" (assignment_expression "pEVar24->e_ident_version = 0" (field_expression "pEVar24->e_ident_version" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_version")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar24->e_ident_osabi = 0;" (assignment_expression "pEVar24->e_ident_osabi = 0" (field_expression "pEVar24->e_ident_osabi" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_osabi")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0" (pointer_expression "*(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar36 + -0x54) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x54) + 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x54) + 4" (pointer_expression "*(int *)(puVar36 + -0x54)" (* "*") (cast_expression "(int *)(puVar36 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x54)" (( "(") (binary_expression "puVar36 + -0x54" (identifier "puVar36") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_00030e94:\n    piVar39 = *(int **)(puVar36 + -0x40);" (statement_identifier "LAB_00030e94") (: ":") (expression_statement "piVar39 = *(int **)(puVar36 + -0x40);" (assignment_expression "piVar39 = *(int **)(puVar36 + -0x40)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar36 + -0x40)" (* "*") (cast_expression "(int **)(puVar36 + -0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x40)" (( "(") (binary_expression "puVar36 + -0x40" (identifier "puVar36") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";"))) (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar36 + -0x58)" (* "*") (cast_expression "(int **)(puVar36 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x58)" (( "(") (binary_expression "puVar36 + -0x58" (identifier "puVar36") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (if_statement "if (piVar39 != (int *)0x0) {\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" (if "if") (parenthesized_expression "(piVar39 != (int *)0x0)" (( "(") (binary_expression "piVar39 != (int *)0x0" (identifier "piVar39") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar51 = *(code **)(pcVar51 + -0x7a2c);\n      goto LAB_00030c08;\n    }" ({ "{") (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7a2c);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7a2c)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7a2c)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7a2c)" (( "(") (binary_expression "pcVar51 + -0x7a2c" (identifier "pcVar51") (+ "+") (number_literal "-0x7a2c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00030c08;" (goto "goto") (statement_identifier "LAB_00030c08") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" (else "else") (compound_statement "{\n    pcVar51 = *(code **)(pcVar46 + 0x66c10);\n    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;\n    *(undefined4 *)(puVar36 + -0x34) = 1;\n    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;\n    (*pcVar51)();\n    pcVar51 = *(code **)(puVar36 + -0x88);\nLAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);\n  }" ({ "{") (expression_statement "pcVar51 = *(code **)(pcVar46 + 0x66c10);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + 0x66c10)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar46 + 0x66c10)" (* "*") (cast_expression "(code **)(pcVar46 + 0x66c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + 0x66c10)" (( "(") (binary_expression "pcVar46 + 0x66c10" (identifier "pcVar46") (+ "+") (number_literal "0x66c10")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;" (assignment_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30" (pointer_expression "*(Elf32_Ehdr **)(puVar36 + -0x3c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar36 + -0x3c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x3c)" (( "(") (binary_expression "puVar36 + -0x3c" (identifier "puVar36") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "*(undefined4 *)(puVar36 + -0x34) = 1;" (assignment_expression "*(undefined4 *)(puVar36 + -0x34) = 1" (pointer_expression "*(undefined4 *)(puVar36 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar36 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x34)" (( "(") (binary_expression "puVar36 + -0x34" (identifier "puVar36") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;" (assignment_expression "*(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c" (pointer_expression "*(undefined1 **)(puVar36 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar36 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x30)" (( "(") (binary_expression "puVar36 + -0x30" (identifier "puVar36") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar36 + -0x3c" (identifier "puVar36") (+ "+") (number_literal "-0x3c"))) (; ";")) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar51 = *(code **)(puVar36 + -0x88);" (assignment_expression "pcVar51 = *(code **)(puVar36 + -0x88)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(puVar36 + -0x88)" (* "*") (cast_expression "(code **)(puVar36 + -0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x88)" (( "(") (binary_expression "puVar36 + -0x88" (identifier "puVar36") (+ "+") (number_literal "-0x88")) () ")"))))) (; ";")) (labeled_statement "LAB_00030c64:\n    piVar12 = *(int **)(puVar36 + -0x58);" (statement_identifier "LAB_00030c64") (: ":") (expression_statement "piVar12 = *(int **)(puVar36 + -0x58);" (assignment_expression "piVar12 = *(int **)(puVar36 + -0x58)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar36 + -0x58)" (* "*") (cast_expression "(int **)(puVar36 + -0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x58)" (( "(") (binary_expression "puVar36 + -0x58" (identifier "puVar36") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (*(int *)(puVar36 + -0x2c) == *piVar12) {\n    return *piVar12;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar36 + -0x2c) == *piVar12)" (( "(") (binary_expression "*(int *)(puVar36 + -0x2c) == *piVar12" (pointer_expression "*(int *)(puVar36 + -0x2c)" (* "*") (cast_expression "(int *)(puVar36 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x2c)" (( "(") (binary_expression "puVar36 + -0x2c" (identifier "puVar36") (+ "+") (number_literal "-0x2c")) () ")")))) (== "==") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) (compound_statement "{\n    return *piVar12;\n  }" ({ "{") (return_statement "return *piVar12;" (return "return") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (} "}"))) (expression_statement "pcVar51 = *(code **)(pcVar51 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar51 + -0x7b70)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar51 + -0x7b70)" (* "*") (cast_expression "(code **)(pcVar51 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + -0x7b70)" (( "(") (binary_expression "pcVar51 + -0x7b70" (identifier "pcVar51") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "uVar44 = 0x3153c;" (assignment_expression "uVar44 = 0x3153c" (identifier "uVar44") (= "=") (number_literal "0x3153c")) (; ";")) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar46 = pcVar51 + 0x6db00;" (assignment_expression "pcVar46 = pcVar51 + 0x6db00" (identifier "pcVar46") (= "=") (binary_expression "pcVar51 + 0x6db00" (identifier "pcVar51") (+ "+") (number_literal "0x6db00"))) (; ";")) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" (identifier "puVar9") (= "=") (binary_expression "puVar49 + -0x38" (identifier "puVar49") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x10)" (( "(") (binary_expression "puVar49 + -0x10" (identifier "puVar49") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar40")) (; ";")) (expression_statement "piVar12 = *(int **)(pcVar51 + 0x66000);" (assignment_expression "piVar12 = *(int **)(pcVar51 + 0x66000)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(pcVar51 + 0x66000)" (* "*") (cast_expression "(int **)(pcVar51 + 0x66000)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x66000)" (( "(") (binary_expression "pcVar51 + 0x66000" (identifier "pcVar51") (+ "+") (number_literal "0x66000")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;" (assignment_expression "*(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0" (pointer_expression "*(undefined1 **)(puVar49 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar49 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -8)" (( "(") (binary_expression "puVar49 + -8" (identifier "puVar49") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar36 + -0xa0" (identifier "puVar36") (+ "+") (number_literal "-0xa0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x14)" (( "(") (binary_expression "puVar49 + -0x14" (identifier "puVar49") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x18)" (( "(") (binary_expression "puVar49 + -0x18" (identifier "puVar49") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar24")) (; ";")) (expression_statement "*(undefined4 *)(puVar49 + -4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar49 + -4) = uVar44" (pointer_expression "*(undefined4 *)(puVar49 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar49 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + -4)" (( "(") (binary_expression "puVar49 + -4" (identifier "puVar49") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar49 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar49 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0xc)" (( "(") (binary_expression "puVar49 + -0xc" (identifier "puVar49") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pEVar41")) (; ";")) (expression_statement "*(code **)(puVar49 + -0x28) = pcVar46;" (assignment_expression "*(code **)(puVar49 + -0x28) = pcVar46" (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pcVar46")) (; ";")) (expression_statement "*(int *)(puVar49 + -0x1c) = *piVar12;" (assignment_expression "*(int *)(puVar49 + -0x1c) = *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" (* "*") (cast_expression "(int *)(puVar49 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + -0x1c)" (( "(") (binary_expression "puVar49 + -0x1c" (identifier "puVar49") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }\n  else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" (if "if") (parenthesized_expression "((Elf32_Ehdr *)&DAT_00000004 < pEVar28)" (( "(") (binary_expression "(Elf32_Ehdr *)&DAT_00000004 < pEVar28" (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 "pEVar28")) () ")")) (compound_statement "{\n    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }\n    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);\n    pcVar46 = *(code **)(puVar49 + -0x28);\n    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);\n    uVar6 = 8;\n    do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);\n    if (uVar54 == 0) {\n      trap(7);\n    }\n    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;\n    *(undefined4 *)(puVar49 + -0x20) = 0;\n    if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    iVar37 = 0;\n    uVar55 = 1;\n    iVar8 = 0;\n    uVar6 = 0;\n    uVar54 = 6;\n    do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);\n    if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    piVar43 = *(int **)(puVar49 + -0x20);\n    if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n  }" ({ "{") (if_statement "if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }\n    else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" (if "if") (parenthesized_expression "(*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1))" (( "(") (binary_expression "*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" (pointer_expression "*piVar39" (* "*") (identifier "piVar39")) (< "<") (cast_expression "(int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)" (( "(") (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1" (binary_expression "((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6)" (parenthesized_expression "((uint)pEVar28 >> 5)" (( "(") (binary_expression "(uint)pEVar28 >> 5" (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28")) (>> ">>") (number_literal "5")) () ")")) (+ "+") (parenthesized_expression "((uint)pEVar28 >> 6)" (( "(") (binary_expression "(uint)pEVar28 >> 6" (cast_expression "(uint)pEVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar28")) (>> ">>") (number_literal "6")) () ")"))) (+ "+") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" ({ "{") (expression_statement "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();" (assignment_expression "pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))()" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar51 + 0x6607c))()" (parenthesized_expression "(**(code **)(pcVar51 + 0x6607c))" (( "(") (pointer_expression "**(code **)(pcVar51 + 0x6607c)" (* "*") (pointer_expression "*(code **)(pcVar51 + 0x6607c)" (* "*") (cast_expression "(code **)(pcVar51 + 0x6607c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x6607c)" (( "(") (binary_expression "pcVar51 + 0x6607c" (identifier "pcVar51") (+ "+") (number_literal "0x6607c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" (else "else") (compound_statement "{\n      pEVar41 = (Elf32_Ehdr *)piVar39[2];\n    }" ({ "{") (expression_statement "pEVar41 = (Elf32_Ehdr *)piVar39[2];" (assignment_expression "pEVar41 = (Elf32_Ehdr *)piVar39[2]" (identifier "pEVar41") (= "=") (cast_expression "(Elf32_Ehdr *)piVar39[2]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar39[2]" (identifier "piVar39") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (expression_statement "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7efc))" (( "(") (pointer_expression "**(code **)(pcVar46 + -0x7efc)" (* "*") (pointer_expression "*(code **)(pcVar46 + -0x7efc)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7efc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7efc)" (( "(") (binary_expression "pcVar46 + -0x7efc" (identifier "pcVar46") (+ "+") (number_literal "-0x7efc")) () ")"))))) () ")")) (argument_list "(pEVar41,pEVar28)" (( "(") (identifier "pEVar41") (, ",") (identifier "pEVar28") () ")")))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (expression_statement "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar46 + -0x7c6c) + 0x1c)" (( "(") (binary_expression "*(int *)(pcVar46 + -0x7c6c) + 0x1c" (pointer_expression "*(int *)(pcVar46 + -0x7c6c)" (* "*") (cast_expression "(int *)(pcVar46 + -0x7c6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + -0x7c6c)" (( "(") (binary_expression "pcVar46 + -0x7c6c" (identifier "pcVar46") (+ "+") (number_literal "-0x7c6c")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "uVar6 = 8;" (assignment_expression "uVar6 = 8" (identifier "uVar6") (= "=") (number_literal "8")) (; ";")) (do_statement "do {\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    } while (pEVar40 < pEVar28);" (do "do") (compound_statement "{\n      uVar54 = uVar6;\n      pEVar40 = (Elf32_Ehdr *)*puVar35;\n      puVar35 = puVar35 + -1;\n      uVar6 = uVar54 - 1;\n    }" ({ "{") (expression_statement "uVar54 = uVar6;" (assignment_expression "uVar54 = uVar6" (identifier "uVar54") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)*puVar35;" (assignment_expression "pEVar40 = (Elf32_Ehdr *)*puVar35" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)*puVar35" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) (; ";")) (expression_statement "puVar35 = puVar35 + -1;" (assignment_expression "puVar35 = puVar35 + -1" (identifier "puVar35") (= "=") (binary_expression "puVar35 + -1" (identifier "puVar35") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar6 = uVar54 - 1;" (assignment_expression "uVar6 = uVar54 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar54 - 1" (identifier "uVar54") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar40 < pEVar28)" (( "(") (binary_expression "pEVar40 < pEVar28" (identifier "pEVar40") (< "<") (identifier "pEVar28")) () ")")) (; ";")) (if_statement "if (uVar54 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar54 == 0)" (( "(") (binary_expression "uVar54 == 0" (identifier "uVar54") (== "==") (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 "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;" (assignment_expression "uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4" (identifier "uVar6") (= "=") (binary_expression "((iVar8 + 1U) / uVar54 + 1) * 4" (parenthesized_expression "((iVar8 + 1U) / uVar54 + 1)" (( "(") (binary_expression "(iVar8 + 1U) / uVar54 + 1" (binary_expression "(iVar8 + 1U) / uVar54" (parenthesized_expression "(iVar8 + 1U)" (( "(") (binary_expression "iVar8 + 1U" (identifier "iVar8") (+ "+") (number_literal "1U")) () ")")) (/ "/") (identifier "uVar54")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar49 + -0x20) = 0;" (assignment_expression "*(undefined4 *)(puVar49 + -0x20) = 0" (pointer_expression "*(undefined4 *)(puVar49 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar49 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + -0x20)" (( "(") (binary_expression "puVar49 + -0x20" (identifier "puVar49") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar6 < 0x7f01) {\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }\n    else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" (if "if") (parenthesized_expression "(uVar6 < 0x7f01)" (( "(") (binary_expression "uVar6 < 0x7f01" (identifier "uVar6") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar8 = -(uVar6 + 7 & 0xfffffff8);\n      puVar9 = puVar49 + iVar8 + -0x38;\n      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);\n    }" ({ "{") (expression_statement "iVar8 = -(uVar6 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar6 + 7 & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(uVar6 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar6 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar6 + 7 & 0xfffffff8" (binary_expression "uVar6 + 7" (identifier "uVar6") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar9 = puVar49 + iVar8 + -0x38;" (assignment_expression "puVar9 = puVar49 + iVar8 + -0x38" (identifier "puVar9") (= "=") (binary_expression "puVar49 + iVar8 + -0x38" (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)(puVar49 + iVar8 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + iVar8 + -0x28)" (( "(") (binary_expression "puVar49 + iVar8 + -0x28" (binary_expression "puVar49 + iVar8" (identifier "puVar49") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x28")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" (else "else") (compound_statement "{\n      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" ({ "{") (expression_statement "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);" (assignment_expression "pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" (identifier "pEVar40") (= "=") (cast_expression "(Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7d50))" (( "(") (pointer_expression "**(code **)(pcVar46 + -0x7d50)" (* "*") (pointer_expression "*(code **)(pcVar46 + -0x7d50)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7d50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7d50)" (( "(") (binary_expression "pcVar46 + -0x7d50" (identifier "pcVar46") (+ "+") (number_literal "-0x7d50")) () ")"))))) () ")")) (argument_list "(puVar49 + -0x20)" (( "(") (binary_expression "puVar49 + -0x20" (identifier "puVar49") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar55 = 1;" (assignment_expression "uVar55 = 1" (identifier "uVar55") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar54 = 6;" (assignment_expression "uVar54 = 6" (identifier "uVar54") (= "=") (number_literal "6")) (; ";")) (do_statement "do {\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    } while (bVar1);" (do "do") (compound_statement "{\n      uVar53 = uVar6 + 1;\n      iVar26 = iVar8;\n      uVar17 = uVar54;\n      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }\n      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);\n      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;\n      iVar37 = iVar37 + (uVar55 & 1);\n      iVar8 = iVar26;\n      uVar6 = uVar53;\n      uVar54 = uVar17;\n    }" ({ "{") (expression_statement "uVar53 = uVar6 + 1;" (assignment_expression "uVar53 = uVar6 + 1" (identifier "uVar53") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar26 = iVar8;" (assignment_expression "iVar26 = iVar8" (identifier "iVar26") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "uVar17 = uVar54;" (assignment_expression "uVar17 = uVar54" (identifier "uVar17") (= "=") (identifier "uVar54")) (; ";")) (if_statement "if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" (if "if") (parenthesized_expression "((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0)" (( "(") (binary_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0" (parenthesized_expression "(uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1))" (( "(") (binary_expression "uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" (identifier "uVar55") (& "&") (pointer_expression "*(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)" (( "(") (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4 + -1" (binary_expression "pEVar41->e_ident_magic_str + iVar37 * 4" (field_expression "pEVar41->e_ident_magic_str" (identifier "pEVar41") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar37 * 4" (identifier "iVar37") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")"))))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;\n        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }\n      }" ({ "{") (expression_statement "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;" (assignment_expression "uVar17 = (uVar53 & 1) + 1 + uVar53 * 3" (identifier "uVar17") (= "=") (binary_expression "(uVar53 & 1) + 1 + uVar53 * 3" (binary_expression "(uVar53 & 1) + 1" (parenthesized_expression "(uVar53 & 1)" (( "(") (binary_expression "uVar53 & 1" (identifier "uVar53") (& "&") (number_literal "1")) () ")")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "uVar53 * 3" (identifier "uVar53") (* "*") (number_literal "3")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {\n          uVar17 = uVar54 * uVar17;\n        }\n        else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20" (binary_expression "(ulonglong)uVar54 * ZEXT48(pEVar28)" (cast_expression "(ulonglong)uVar54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar54")) (* "*") (call_expression "ZEXT48(pEVar28)" (identifier "ZEXT48") (argument_list "(pEVar28)" (( "(") (identifier "pEVar28") () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = uVar54 * uVar17;\n        }" ({ "{") (expression_statement "uVar17 = uVar54 * uVar17;" (assignment_expression "uVar17 = uVar54 * uVar17" (identifier "uVar17") (= "=") (binary_expression "uVar54 * uVar17" (identifier "uVar54") (* "*") (identifier "uVar17"))) (; ";")) (} "}")) (else_clause "else {\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" (else "else") (compound_statement "{\n          iVar26 = iVar8 + 1;\n          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;\n        }" ({ "{") (expression_statement "iVar26 = iVar8 + 1;" (assignment_expression "iVar26 = iVar8 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar8 * 4 + -1)" (( "(") (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar8 * 4" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar54")) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);" (assignment_expression "uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f)" (identifier "uVar55") (= "=") (binary_expression "uVar55 * 2 - ((int)uVar55 >> 0x1f)" (binary_expression "uVar55 * 2" (identifier "uVar55") (* "*") (number_literal "2")) (- "-") (parenthesized_expression "((int)uVar55 >> 0x1f)" (( "(") (binary_expression "(int)uVar55 >> 0x1f" (cast_expression "(int)uVar55" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar55")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;" (assignment_expression "bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" (identifier "bVar1") (= "=") (binary_expression "uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" (identifier "uVar6") (!= "!=") (binary_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3" (parenthesized_expression "((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1)" (( "(") (binary_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1) | 1" (call_expression "(uint)((int)&pEVar28[-1].e_shentsize + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)&pEVar28[-1].e_shentsize + 1)" (( "(") (binary_expression "(int)&pEVar28[-1].e_shentsize + 1" (cast_expression "(int)&pEVar28[-1].e_shentsize" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar28[-1].e_shentsize" (& "&") (field_expression "pEVar28[-1].e_shentsize" (subscript_expression "pEVar28[-1]" (identifier "pEVar28") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shentsize")))) (+ "+") (number_literal "1")) () ")"))) (| "|") (number_literal "1")) () ")")) (/ "/") (number_literal "3")))) (; ";")) (expression_statement "iVar37 = iVar37 + (uVar55 & 1);" (assignment_expression "iVar37 = iVar37 + (uVar55 & 1)" (identifier "iVar37") (= "=") (binary_expression "iVar37 + (uVar55 & 1)" (identifier "iVar37") (+ "+") (parenthesized_expression "(uVar55 & 1)" (( "(") (binary_expression "uVar55 & 1" (identifier "uVar55") (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar8 = iVar26;" (assignment_expression "iVar8 = iVar26" (identifier "iVar8") (= "=") (identifier "iVar26")) (; ";")) (expression_statement "uVar6 = uVar53;" (assignment_expression "uVar6 = uVar53" (identifier "uVar6") (= "=") (identifier "uVar53")) (; ";")) (expression_statement "uVar54 = uVar17;" (assignment_expression "uVar54 = uVar17" (identifier "uVar54") (= "=") (identifier "uVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (if_statement "if (iVar26 == 0) {\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }\n    else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)piVar39[2] = uVar17;\n      piVar39[1] = 1;\n    }" ({ "{") (expression_statement "*(uint *)piVar39[2] = uVar17;" (assignment_expression "*(uint *)piVar39[2] = uVar17" (pointer_expression "*(uint *)piVar39[2]" (* "*") (cast_expression "(uint *)piVar39[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar39[2]" (identifier "piVar39") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" (identifier "piVar39") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" (else "else") (compound_statement "{\n      pcVar51 = *(code **)(pcVar46 + -0x7dbc);\n      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;\n      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" ({ "{") (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7dbc);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7dbc)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar46 + -0x7dbc)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7dbc)" (( "(") (binary_expression "pcVar46 + -0x7dbc" (identifier "pcVar46") (+ "+") (number_literal "-0x7dbc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;" (assignment_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17" (pointer_expression "*(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" (* "*") (cast_expression "(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar40->e_ident_magic_str + iVar26 * 4 + -1)" (( "(") (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4 + -1" (binary_expression "pEVar40->e_ident_magic_str + iVar26 * 4" (field_expression "pEVar40->e_ident_magic_str" (identifier "pEVar40") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "(*pcVar51)(piVar39,pEVar40,iVar26 + 1);" (call_expression "(*pcVar51)(piVar39,pEVar40,iVar26 + 1)" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "(piVar39,pEVar40,iVar26 + 1)" (( "(") (identifier "piVar39") (, ",") (identifier "pEVar40") (, ",") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar43 = *(int **)(puVar49 + -0x20);" (assignment_expression "piVar43 = *(int **)(puVar49 + -0x20)" (identifier "piVar43") (= "=") (pointer_expression "*(int **)(puVar49 + -0x20)" (* "*") (cast_expression "(int **)(puVar49 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x20)" (( "(") (binary_expression "puVar49 + -0x20" (identifier "puVar49") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (if_statement "if (piVar43 != (int *)0x0) {\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" (if "if") (parenthesized_expression "(piVar43 != (int *)0x0)" (( "(") (binary_expression "piVar43 != (int *)0x0" (identifier "piVar43") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar46 + -0x7a2c))();\n      pcVar46 = *(code **)(puVar49 + -0x28);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar46 + -0x7a2c))();" (call_expression "(**(code **)(pcVar46 + -0x7a2c))()" (parenthesized_expression "(**(code **)(pcVar46 + -0x7a2c))" (( "(") (pointer_expression "**(code **)(pcVar46 + -0x7a2c)" (* "*") (pointer_expression "*(code **)(pcVar46 + -0x7a2c)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7a2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7a2c)" (( "(") (binary_expression "pcVar46 + -0x7a2c" (identifier "pcVar46") (+ "+") (number_literal "-0x7a2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar49 + -0x28);" (assignment_expression "pcVar46 = *(code **)(puVar49 + -0x28)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar49 + -0x28)" (* "*") (cast_expression "(code **)(puVar49 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar49 + -0x28)" (( "(") (binary_expression "puVar49 + -0x28" (identifier "puVar49") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" (else "else") (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);\n    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;\n    piVar39[1] = 1;\n    piVar43 = piVar39;\n    pEVar40 = pEVar28;\n    pEVar28 = pEVar27;\n    puVar9 = puVar49 + -0x38;\n  }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60)" (( "(") (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60" (binary_expression "(int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c)" (binary_expression "(int)pEVar28 * 4" (cast_expression "(int)pEVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar28")) (* "*") (number_literal "4")) (+ "+") (pointer_expression "*(int *)(pcVar51 + 0x65b2c)" (* "*") (cast_expression "(int *)(pcVar51 + 0x65b2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar51 + 0x65b2c)" (( "(") (binary_expression "pcVar51 + 0x65b2c" (identifier "pcVar51") (+ "+") (number_literal "0x65b2c")) () ")"))))) (+ "+") (number_literal "-0x2a60")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;" (assignment_expression "*(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27" (pointer_expression "*(undefined4 *)piVar39[2]" (* "*") (cast_expression "(undefined4 *)piVar39[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar39[2]" (identifier "piVar39") ([ "[") (number_literal "2") (] "]")))) (= "=") (pointer_expression "*(undefined4 *)pEVar27" (* "*") (cast_expression "(undefined4 *)pEVar27" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pEVar27")))) (; ";")) (expression_statement "piVar39[1] = 1;" (assignment_expression "piVar39[1] = 1" (subscript_expression "piVar39[1]" (identifier "piVar39") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar43 = piVar39;" (assignment_expression "piVar43 = piVar39" (identifier "piVar43") (= "=") (identifier "piVar39")) (; ";")) (expression_statement "pEVar40 = pEVar28;" (assignment_expression "pEVar40 = pEVar28" (identifier "pEVar40") (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "pEVar28 = pEVar27;" (assignment_expression "pEVar28 = pEVar27" (identifier "pEVar28") (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "puVar9 = puVar49 + -0x38;" (assignment_expression "puVar9 = puVar49 + -0x38" (identifier "puVar9") (= "=") (binary_expression "puVar49 + -0x38" (identifier "puVar49") (+ "+") (number_literal "-0x38"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar49 + -0x1c) == *piVar12) {\n    return *piVar12;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar49 + -0x1c) == *piVar12)" (( "(") (binary_expression "*(int *)(puVar49 + -0x1c) == *piVar12" (pointer_expression "*(int *)(puVar49 + -0x1c)" (* "*") (cast_expression "(int *)(puVar49 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar49 + -0x1c)" (( "(") (binary_expression "puVar49 + -0x1c" (identifier "puVar49") (+ "+") (number_literal "-0x1c")) () ")")))) (== "==") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) (compound_statement "{\n    return *piVar12;\n  }" ({ "{") (return_statement "return *piVar12;" (return "return") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (} "}"))) (expression_statement "pcVar51 = *(code **)(pcVar46 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(pcVar46 + -0x7b70)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(pcVar46 + -0x7b70)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7b70)" (( "(") (binary_expression "pcVar46 + -0x7b70" (identifier "pcVar46") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";")) (expression_statement "pcVar52 = __gmpz_probab_prime_p;" (assignment_expression "pcVar52 = __gmpz_probab_prime_p" (identifier "pcVar52") (= "=") (identifier "__gmpz_probab_prime_p")) (; ";")) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x659a8);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x659a8)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + 0x659a8)" (* "*") (cast_expression "(code **)(pcVar51 + 0x659a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x659a8)" (( "(") (binary_expression "pcVar51 + 0x659a8" (identifier "pcVar51") (+ "+") (number_literal "0x659a8")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar9 + -0x24) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0x24) = piVar39" (pointer_expression "*(int **)(puVar9 + -0x24)" (* "*") (cast_expression "(int **)(puVar9 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x24)" (( "(") (binary_expression "puVar9 + -0x24" (identifier "puVar9") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar39")) (; ";")) (expression_statement "*(int **)(puVar9 + -0x20) = piVar12;" (assignment_expression "*(int **)(puVar9 + -0x20) = piVar12" (pointer_expression "*(int **)(puVar9 + -0x20)" (* "*") (cast_expression "(int **)(puVar9 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x20)" (( "(") (binary_expression "puVar9 + -0x20" (identifier "puVar9") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar39 = *(int **)(pcVar51 + 0x65da0);" (assignment_expression "piVar39 = *(int **)(pcVar51 + 0x65da0)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(pcVar51 + 0x65da0)" (* "*") (cast_expression "(int **)(pcVar51 + 0x65da0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x65da0)" (( "(") (binary_expression "pcVar51 + 0x65da0" (identifier "pcVar51") (+ "+") (number_literal "0x65da0")) () ")"))))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x18)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x18)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x18)" (( "(") (binary_expression "puVar9 + -0x18" (identifier "puVar9") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pEVar42")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x1c)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x1c)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x1c)" (( "(") (binary_expression "puVar9 + -0x1c" (identifier "puVar9") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pEVar41")) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;" (assignment_expression "*(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0" (pointer_expression "*(code **)(puVar9 + -0x90)" (* "*") (cast_expression "(code **)(puVar9 + -0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")")))) (= "=") (binary_expression "pcVar51 + 0x6d8a0" (identifier "pcVar51") (+ "+") (number_literal "0x6d8a0"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x10)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x10)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x14)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x14)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pEVar16")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x28)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x28)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x28)" (( "(") (binary_expression "puVar9 + -0x28" (identifier "puVar9") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pEVar28")) (; ";")) (expression_statement "*(code **)(puVar9 + -4) = pcVar52;" (assignment_expression "*(code **)(puVar9 + -4) = pcVar52" (pointer_expression "*(code **)(puVar9 + -4)" (* "*") (cast_expression "(code **)(puVar9 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -4)" (( "(") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar52")) (; ";")) (expression_statement "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;" (assignment_expression "*(undefined1 **)(puVar9 + -8) = puVar49 + -0x38" (pointer_expression "*(undefined1 **)(puVar9 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -8)" (( "(") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar49 + -0x38" (identifier "puVar49") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xc)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xc)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "*(int *)(puVar9 + -0x2c) = *piVar39;" (assignment_expression "*(int *)(puVar9 + -0x2c) = *piVar39" (pointer_expression "*(int *)(puVar9 + -0x2c)" (* "*") (cast_expression "(int *)(puVar9 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x2c)" (( "(") (binary_expression "puVar9 + -0x2c" (identifier "puVar9") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (expression_statement "iVar8 = (*pcVar46)();" (assignment_expression "iVar8 = (*pcVar46)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar46)()" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar19 = (uint *)piVar43[2];" (assignment_expression "puVar19 = (uint *)piVar43[2]" (identifier "puVar19") (= "=") (cast_expression "(uint *)piVar43[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar43[2]" (identifier "piVar43") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar10 = (Elf32_Ehdr *)piVar43[1];" (assignment_expression "pEVar10 = (Elf32_Ehdr *)piVar43[1]" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)piVar43[1]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar43[1]" (identifier "piVar43") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar6 = *puVar19;" (assignment_expression "uVar6 = *puVar19" (identifier "uVar6") (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (if_statement "if (iVar8 < 1) {\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" (if "if") (parenthesized_expression "(iVar8 < 1)" (( "(") (binary_expression "iVar8 < 1" (identifier "iVar8") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    pEVar27 = (Elf32_Ehdr *)0xf4240;\n    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }\n    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;\n    *(uint **)(puVar9 + -0x6c) = puVar19;\n    piVar43 = (int *)(puVar9 + -0x74);\n    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;\n  }" ({ "{") (expression_statement "pEVar27 = (Elf32_Ehdr *)0xf4240;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0xf4240" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)0xf4240" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf4240"))) (; ";")) (expression_statement "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar37 + -0x7ab8))(piVar43)" (parenthesized_expression "(**(code **)(iVar37 + -0x7ab8))" (( "(") (pointer_expression "**(code **)(iVar37 + -0x7ab8)" (* "*") (pointer_expression "*(code **)(iVar37 + -0x7ab8)" (* "*") (cast_expression "(code **)(iVar37 + -0x7ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7ab8)" (( "(") (binary_expression "iVar37 + -0x7ab8" (identifier "iVar37") (+ "+") (number_literal "-0x7ab8")) () ")"))))) () ")")) (argument_list "(piVar43)" (( "(") (identifier "piVar43") () ")")))) (; ";")) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (iVar8 < 1) {\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" (if "if") (parenthesized_expression "(iVar8 < 1)" (( "(") (binary_expression "iVar8 < 1" (identifier "iVar8") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar8 = 0;\n      if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }\n      goto LAB_00031824;\n    }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" (identifier "pEVar10") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar6 < 3) {\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }\n        else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(uVar6 < 3)" (( "(") (binary_expression "uVar6 < 3" (identifier "uVar6") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n          iVar8 = 2;\n          if (uVar6 != 2) {\n            iVar8 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" (identifier "iVar8") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar6 != 2) {\n            iVar8 = 0;\n          }" (if "if") (parenthesized_expression "(uVar6 != 2)" (( "(") (binary_expression "uVar6 != 2" (identifier "uVar6") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            iVar8 = 0;\n          }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          uVar54 = 3;\n          if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }\n        }" ({ "{") (expression_statement "uVar54 = 3;" (assignment_expression "uVar54 = 3" (identifier "uVar54") (= "=") (number_literal "3")) (; ";")) (if_statement "if ((uVar6 & 1) != 0) {\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" (if "if") (parenthesized_expression "((uVar6 & 1) != 0)" (( "(") (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);\n            iVar8 = 0;\n          }" ({ "{") (do_statement "do {\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            } while (uVar55 != 0);" (do "do") (compound_statement "{\n              if (uVar54 == 0) {\n                trap(7);\n              }\n              uVar55 = uVar6 % uVar54;\n              if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }\n              uVar54 = uVar54 + 2;\n            }" ({ "{") (if_statement "if (uVar54 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar54 == 0)" (( "(") (binary_expression "uVar54 == 0" (identifier "uVar54") (== "==") (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 "uVar55 = uVar6 % uVar54;" (assignment_expression "uVar55 = uVar6 % uVar54" (identifier "uVar55") (= "=") (binary_expression "uVar6 % uVar54" (identifier "uVar6") (% "%") (identifier "uVar54"))) (; ";")) (if_statement "if (uVar6 / uVar54 < uVar54) {\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" (if "if") (parenthesized_expression "(uVar6 / uVar54 < uVar54)" (( "(") (binary_expression "uVar6 / uVar54 < uVar54" (binary_expression "uVar6 / uVar54" (identifier "uVar6") (/ "/") (identifier "uVar54")) (< "<") (identifier "uVar54")) () ")")) (compound_statement "{\n                iVar8 = 2;\n                goto LAB_00031824;\n              }" ({ "{") (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" (identifier "iVar8") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (expression_statement "uVar54 = uVar54 + 2;" (assignment_expression "uVar54 = uVar54 + 2" (identifier "uVar54") (= "=") (binary_expression "uVar54 + 2" (identifier "uVar54") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar55 != 0)" (( "(") (binary_expression "uVar55 != 0" (identifier "uVar55") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar10" (identifier "pEVar10") (= "=") (cast_expression "(Elf32_Ehdr *)-(int)pEVar10" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pEVar10" (- "-") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))))) (; ";")) (expression_statement "*(uint **)(puVar9 + -0x6c) = puVar19;" (assignment_expression "*(uint **)(puVar9 + -0x6c) = puVar19" (pointer_expression "*(uint **)(puVar9 + -0x6c)" (* "*") (cast_expression "(uint **)(puVar9 + -0x6c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x6c)" (( "(") (binary_expression "puVar9 + -0x6c" (identifier "puVar9") (+ "+") (number_literal "-0x6c")) () ")")))) (= "=") (identifier "puVar19")) (; ";")) (expression_statement "piVar43 = (int *)(puVar9 + -0x74);" (assignment_expression "piVar43 = (int *)(puVar9 + -0x74)" (identifier "piVar43") (= "=") (cast_expression "(int *)(puVar9 + -0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x74)" (( "(") (binary_expression "puVar9 + -0x74" (identifier "puVar9") (+ "+") (number_literal "-0x74")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0x70)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0x70)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x70)" (( "(") (binary_expression "puVar9 + -0x70" (identifier "puVar9") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (} "}"))) (if_statement "if (pEVar10 != (Elf32_Ehdr *)0x0) {\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" (if "if") (parenthesized_expression "(pEVar10 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar10 != (Elf32_Ehdr *)0x0" (identifier "pEVar10") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar6 = uVar6 & 1;\n    iVar8 = 0;\n    if (uVar6 == 0) goto LAB_00031824;\n    pEVar27 = pEVar10;\n    if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }\n  }" ({ "{") (expression_statement "uVar6 = uVar6 & 1;" (assignment_expression "uVar6 = uVar6 & 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar6 == 0) goto LAB_00031824;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";"))) (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" (identifier "pEVar27") (= "=") (identifier "pEVar10")) (; ";")) (if_statement "if ((int)pEVar10 < 10) {\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }\n    else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" (if "if") (parenthesized_expression "((int)pEVar10 < 10)" (( "(") (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" ({ "{") (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" (identifier "uVar54") (= "=") (call_expression "(**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c24))" (( "(") (pointer_expression "**(code **)(iVar37 + -0x7c24)" (* "*") (pointer_expression "*(code **)(iVar37 + -0x7c24)" (* "*") (cast_expression "(code **)(iVar37 + -0x7c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7c24)" (( "(") (binary_expression "iVar37 + -0x7c24" (identifier "iVar37") (+ "+") (number_literal "-0x7c24")) () ")"))))) () ")")) (argument_list "(puVar19,pEVar10,0xc0cfd797,0x53e5645c)" (( "(") (identifier "puVar19") (, ",") (identifier "pEVar10") (, ",") (number_literal "0xc0cfd797") (, ",") (number_literal "0x53e5645c") () ")")))) (; ";")) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" (else "else") (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);\n      iVar37 = *(int *)(puVar9 + -0x90);\n    }" ({ "{") (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" (identifier "uVar54") (= "=") (call_expression "(**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797)" (parenthesized_expression "(**(code **)(iVar37 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar37 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar37 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar37 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7b80)" (( "(") (binary_expression "iVar37 + -0x7b80" (identifier "iVar37") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar19,pEVar10,0xc0cfd797)" (( "(") (identifier "puVar19") (, ",") (identifier "pEVar10") (, ",") (number_literal "0xc0cfd797") () ")")))) (; ";")) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" (if "if") (parenthesized_expression "((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d))" (( "(") (binary_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&\n       (uVar54 != (uVar54 / 0x1d) * 0x1d)" (parenthesized_expression "(((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))))" (( "(") (binary_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&\n        ((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" (parenthesized_expression "((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))))" (( "(") (binary_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)) &&\n         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" (parenthesized_expression "(((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7))" (( "(") (binary_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&\n          (uVar54 != (uVar54 / 7) * 7)" (parenthesized_expression "((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5))" (( "(") (binary_expression "(uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)" (parenthesized_expression "(uVar54 != (uVar54 / 3) * 3)" (( "(") (binary_expression "uVar54 != (uVar54 / 3) * 3" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 3) * 3" (parenthesized_expression "(uVar54 / 3)" (( "(") (binary_expression "uVar54 / 3" (identifier "uVar54") (/ "/") (number_literal "3")) () ")")) (* "*") (number_literal "3"))) () ")")) (&& "&&") (parenthesized_expression "(uVar54 != (uVar54 / 5) * 5)" (( "(") (binary_expression "uVar54 != (uVar54 / 5) * 5" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 5) * 5" (parenthesized_expression "(uVar54 / 5)" (( "(") (binary_expression "uVar54 / 5" (identifier "uVar54") (/ "/") (number_literal "5")) () ")")) (* "*") (number_literal "5"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar54 != (uVar54 / 7) * 7)" (( "(") (binary_expression "uVar54 != (uVar54 / 7) * 7" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 7) * 7" (parenthesized_expression "(uVar54 / 7)" (( "(") (binary_expression "uVar54 / 7" (identifier "uVar54") (/ "/") (number_literal "7")) () ")")) (* "*") (number_literal "7"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))" (( "(") (parenthesized_expression "(uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd))" (( "(") (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)" (binary_expression "uVar54 != (uVar54 / 0xb) * 0xb" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0xb) * 0xb" (parenthesized_expression "(uVar54 / 0xb)" (( "(") (binary_expression "uVar54 / 0xb" (identifier "uVar54") (/ "/") (number_literal "0xb")) () ")")) (* "*") (number_literal "0xb"))) (&& "&&") (parenthesized_expression "(uVar54 != (uVar54 / 0xd) * 0xd)" (( "(") (binary_expression "uVar54 != (uVar54 / 0xd) * 0xd" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0xd) * 0xd" (parenthesized_expression "(uVar54 / 0xd)" (( "(") (binary_expression "uVar54 / 0xd" (identifier "uVar54") (/ "/") (number_literal "0xd")) () ")")) (* "*") (number_literal "0xd"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))" (( "(") (parenthesized_expression "(uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))))" (( "(") (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11 &&\n         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" (binary_expression "uVar54 != (uVar54 / 0x11) * 0x11" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0x11) * 0x11" (parenthesized_expression "(uVar54 / 0x11)" (( "(") (binary_expression "uVar54 / 0x11" (identifier "uVar54") (/ "/") (number_literal "0x11")) () ")")) (* "*") (number_literal "0x11"))) (&& "&&") (parenthesized_expression "((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))" (( "(") (parenthesized_expression "(uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17))" (( "(") (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)" (binary_expression "uVar54 != (uVar54 / 0x13) * 0x13" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0x13) * 0x13" (parenthesized_expression "(uVar54 / 0x13)" (( "(") (binary_expression "uVar54 / 0x13" (identifier "uVar54") (/ "/") (number_literal "0x13")) () ")")) (* "*") (number_literal "0x13"))) (&& "&&") (parenthesized_expression "(uVar54 != (uVar54 / 0x17) * 0x17)" (( "(") (binary_expression "uVar54 != (uVar54 / 0x17) * 0x17" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0x17) * 0x17" (parenthesized_expression "(uVar54 / 0x17)" (( "(") (binary_expression "uVar54 / 0x17" (identifier "uVar54") (/ "/") (number_literal "0x17")) () ")")) (* "*") (number_literal "0x17"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar54 != (uVar54 / 0x1d) * 0x1d)" (( "(") (binary_expression "uVar54 != (uVar54 / 0x1d) * 0x1d" (identifier "uVar54") (!= "!=") (binary_expression "(uVar54 / 0x1d) * 0x1d" (parenthesized_expression "(uVar54 / 0x1d)" (( "(") (binary_expression "uVar54 / 0x1d" (identifier "uVar54") (/ "/") (number_literal "0x1d")) () ")")) (* "*") (number_literal "0x1d"))) () ")"))) () ")")) (compound_statement "{\n      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);\n      iVar8 = *(int *)(puVar9 + -0x90);\n      if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }\nLAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);\n      iVar37 = *(int *)(puVar9 + -0x90);\n      pEVar27 = pEVar40;\n      goto LAB_00031824;\n    }" ({ "{") (expression_statement "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);" (assignment_expression "uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2)" (identifier "uVar54") (= "=") (call_expression "(**(code **)(iVar37 + -0x7f14))(piVar43,2)" (parenthesized_expression "(**(code **)(iVar37 + -0x7f14))" (( "(") (pointer_expression "**(code **)(iVar37 + -0x7f14)" (* "*") (pointer_expression "*(code **)(iVar37 + -0x7f14)" (* "*") (cast_expression "(code **)(iVar37 + -0x7f14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7f14)" (( "(") (binary_expression "iVar37 + -0x7f14" (identifier "iVar37") (+ "+") (number_literal "-0x7f14")) () ")"))))) () ")")) (argument_list "(piVar43,2)" (( "(") (identifier "piVar43") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (0x1f < uVar54) {\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" (if "if") (parenthesized_expression "(0x1f < uVar54)" (( "(") (binary_expression "0x1f < uVar54" (number_literal "0x1f") (< "<") (identifier "uVar54")) () ")")) (compound_statement "{\n        iVar26 = 0;\n        puVar36 = puVar9 + -0x68;\n        uVar55 = 0x1f;\n        iVar37 = 0;\nLAB_00031a28:\n        uVar17 = 3;\n        do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);\n        goto LAB_00031a4c;\n      }" ({ "{") (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar36 = puVar9 + -0x68;" (assignment_expression "puVar36 = puVar9 + -0x68" (identifier "puVar36") (= "=") (binary_expression "puVar9 + -0x68" (identifier "puVar9") (+ "+") (number_literal "-0x68"))) (; ";")) (expression_statement "uVar55 = 0x1f;" (assignment_expression "uVar55 = 0x1f" (identifier "uVar55") (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00031a28:\n        uVar17 = 3;" (statement_identifier "LAB_00031a28") (: ":") (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" (identifier "uVar17") (= "=") (number_literal "3")) (; ";"))) (do_statement "do {\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        } while (uVar53 != 0);" (do "do") (compound_statement "{\n          if (uVar17 == 0) {\n            trap(7);\n          }\n          uVar53 = uVar55 % uVar17;\n          if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }\n          uVar17 = uVar17 + 2;\n          iVar50 = iVar37;\n        }" ({ "{") (if_statement "if (uVar17 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (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 "uVar53 = uVar55 % uVar17;" (assignment_expression "uVar53 = uVar55 % uVar17" (identifier "uVar53") (= "=") (binary_expression "uVar55 % uVar17" (identifier "uVar55") (% "%") (identifier "uVar17"))) (; ";")) (if_statement "if (uVar55 / uVar17 < uVar17) {\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" (if "if") (parenthesized_expression "(uVar55 / uVar17 < uVar17)" (( "(") (binary_expression "uVar55 / uVar17 < uVar17" (binary_expression "uVar55 / uVar17" (identifier "uVar55") (/ "/") (identifier "uVar17")) (< "<") (identifier "uVar17")) () ")")) (compound_statement "{\n            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }\n            *(undefined1 **)(puVar9 + -0x7c) = puVar36;\n            *(int *)(puVar9 + -0x80) = iVar26;\n            *(uint *)(puVar9 + -0x84) = uVar54;\n            if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }\n            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);\n            goto LAB_00031bcc;\n          }" ({ "{") (if_statement "if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" (if "if") (parenthesized_expression "(iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0)" (( "(") (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0" (binary_expression "iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" (binary_expression "iVar26 * uVar6" (identifier "iVar26") (* "*") (identifier "uVar6")) (+ "+") (cast_expression "(int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20" (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar6")) (* "*") (cast_expression "(ulonglong)uVar55" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar55"))) (>> ">>") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar50 = iVar37 + 1;\n              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);\n              goto LAB_00031b4c;\n            }" ({ "{") (expression_statement "iVar50 = iVar37 + 1;" (assignment_expression "iVar50 = iVar37 + 1" (identifier "iVar50") (= "=") (binary_expression "iVar37 + 1" (identifier "iVar37") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55)" (identifier "uVar6") (= "=") (call_expression "(uint)((ulonglong)uVar6 * (ulonglong)uVar55)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar6 * (ulonglong)uVar55)" (( "(") (binary_expression "(ulonglong)uVar6 * (ulonglong)uVar55" (cast_expression "(ulonglong)uVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar6")) (* "*") (cast_expression "(ulonglong)uVar55" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar55"))) () ")")))) (; ";")) (goto_statement "goto LAB_00031b4c;" (goto "goto") (statement_identifier "LAB_00031b4c") (; ";")) (} "}"))) (expression_statement "*(undefined1 **)(puVar9 + -0x7c) = puVar36;" (assignment_expression "*(undefined1 **)(puVar9 + -0x7c) = puVar36" (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x7c)" (( "(") (binary_expression "puVar9 + -0x7c" (identifier "puVar9") (+ "+") (number_literal "-0x7c")) () ")")))) (= "=") (identifier "puVar36")) (; ";")) (expression_statement "*(int *)(puVar9 + -0x80) = iVar26;" (assignment_expression "*(int *)(puVar9 + -0x80) = iVar26" (pointer_expression "*(int *)(puVar9 + -0x80)" (* "*") (cast_expression "(int *)(puVar9 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x80)" (( "(") (binary_expression "puVar9 + -0x80" (identifier "puVar9") (+ "+") (number_literal "-0x80")) () ")")))) (= "=") (identifier "iVar26")) (; ";")) (expression_statement "*(uint *)(puVar9 + -0x84) = uVar54;" (assignment_expression "*(uint *)(puVar9 + -0x84) = uVar54" (pointer_expression "*(uint *)(puVar9 + -0x84)" (* "*") (cast_expression "(uint *)(puVar9 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x84)" (( "(") (binary_expression "puVar9 + -0x84" (identifier "puVar9") (+ "+") (number_literal "-0x84")) () ")")))) (= "=") (identifier "uVar54")) (; ";")) (if_statement "if ((int)pEVar10 < 10) {\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }\n            else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" (if "if") (parenthesized_expression "((int)pEVar10 < 10)" (( "(") (binary_expression "(int)pEVar10 < 10" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n            }" ({ "{") (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0)" (parenthesized_expression "(**(code **)(iVar8 + -0x7c68))" (( "(") (pointer_expression "**(code **)(iVar8 + -0x7c68)" (* "*") (pointer_expression "*(code **)(iVar8 + -0x7c68)" (* "*") (cast_expression "(code **)(iVar8 + -0x7c68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7c68)" (( "(") (binary_expression "iVar8 + -0x7c68" (identifier "iVar8") (+ "+") (number_literal "-0x7c68")) () ")"))))) () ")")) (argument_list "(puVar19,pEVar10,uVar6,0)" (( "(") (identifier "puVar19") (, ",") (identifier "pEVar10") (, ",") (identifier "uVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" (identifier "uVar54") (= "=") (pointer_expression "*(uint *)(puVar9 + -0x84)" (* "*") (cast_expression "(uint *)(puVar9 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x84)" (( "(") (binary_expression "puVar9 + -0x84" (identifier "puVar9") (+ "+") (number_literal "-0x84")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar9 + -0x80)" (* "*") (cast_expression "(int *)(puVar9 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x80)" (( "(") (binary_expression "puVar9 + -0x80" (identifier "puVar9") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" (identifier "puVar36") (= "=") (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x7c)" (( "(") (binary_expression "puVar9 + -0x7c" (identifier "puVar9") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" (else "else") (compound_statement "{\n              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);\n              iVar8 = *(int *)(puVar9 + -0x90);\n              puVar36 = *(undefined1 **)(puVar9 + -0x7c);\n              iVar26 = *(int *)(puVar9 + -0x80);\n              uVar54 = *(uint *)(puVar9 + -0x84);\n            }" ({ "{") (expression_statement "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);" (assignment_expression "uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar8 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar8 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar8 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7b80)" (( "(") (binary_expression "iVar8 + -0x7b80" (identifier "iVar8") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar19,pEVar10,uVar6)" (( "(") (identifier "puVar19") (, ",") (identifier "pEVar10") (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar8 = *(int *)(puVar9 + -0x90)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "puVar36 = *(undefined1 **)(puVar9 + -0x7c);" (assignment_expression "puVar36 = *(undefined1 **)(puVar9 + -0x7c)" (identifier "puVar36") (= "=") (pointer_expression "*(undefined1 **)(puVar9 + -0x7c)" (* "*") (cast_expression "(undefined1 **)(puVar9 + -0x7c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x7c)" (( "(") (binary_expression "puVar9 + -0x7c" (identifier "puVar9") (+ "+") (number_literal "-0x7c")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar9 + -0x80);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x80)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar9 + -0x80)" (* "*") (cast_expression "(int *)(puVar9 + -0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x80)" (( "(") (binary_expression "puVar9 + -0x80" (identifier "puVar9") (+ "+") (number_literal "-0x80")) () ")"))))) (; ";")) (expression_statement "uVar54 = *(uint *)(puVar9 + -0x84);" (assignment_expression "uVar54 = *(uint *)(puVar9 + -0x84)" (identifier "uVar54") (= "=") (pointer_expression "*(uint *)(puVar9 + -0x84)" (* "*") (cast_expression "(uint *)(puVar9 + -0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x84)" (( "(") (binary_expression "puVar9 + -0x84" (identifier "puVar9") (+ "+") (number_literal "-0x84")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);" (assignment_expression "puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" (identifier "puVar23") (= "=") (cast_expression "(uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + (iVar37 + 0x3fffffff) * 4)" (( "(") (binary_expression "puVar36 + (iVar37 + 0x3fffffff) * 4" (identifier "puVar36") (+ "+") (binary_expression "(iVar37 + 0x3fffffff) * 4" (parenthesized_expression "(iVar37 + 0x3fffffff)" (( "(") (binary_expression "iVar37 + 0x3fffffff" (identifier "iVar37") (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (goto_statement "goto LAB_00031bcc;" (goto "goto") (statement_identifier "LAB_00031bcc") (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 + 2;" (assignment_expression "uVar17 = uVar17 + 2" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 2" (identifier "uVar17") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar50 = iVar37;" (assignment_expression "iVar50 = iVar37" (identifier "iVar50") (= "=") (identifier "iVar37")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar53 != 0)" (( "(") (binary_expression "uVar53 != 0" (identifier "uVar53") (!= "!=") (number_literal "0")) () ")")) (; ";")) (goto_statement "goto LAB_00031a4c;" (goto "goto") (statement_identifier "LAB_00031a4c") (; ";")) (} "}"))) (labeled_statement "LAB_00031a64:\n      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" (statement_identifier "LAB_00031a64") (: ":") (expression_statement "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);" (assignment_expression "iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar8 + -0x7d48))(piVar43)" (parenthesized_expression "(**(code **)(iVar8 + -0x7d48))" (( "(") (pointer_expression "**(code **)(iVar8 + -0x7d48)" (* "*") (pointer_expression "*(code **)(iVar8 + -0x7d48)" (* "*") (cast_expression "(code **)(iVar8 + -0x7d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7d48)" (( "(") (binary_expression "iVar8 + -0x7d48" (identifier "iVar8") (+ "+") (number_literal "-0x7d48")) () ")"))))) () ")")) (argument_list "(piVar43)" (( "(") (identifier "piVar43") () ")")))) (; ";"))) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "pEVar27 = pEVar40;" (assignment_expression "pEVar27 = pEVar40" (identifier "pEVar27") (= "=") (identifier "pEVar40")) (; ";")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00031824:\n  iVar26 = *(int *)(puVar9 + -0x2c);" (statement_identifier "LAB_00031824") (: ":") (expression_statement "iVar26 = *(int *)(puVar9 + -0x2c);" (assignment_expression "iVar26 = *(int *)(puVar9 + -0x2c)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar9 + -0x2c)" (* "*") (cast_expression "(int *)(puVar9 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x2c)" (( "(") (binary_expression "puVar9 + -0x2c" (identifier "puVar9") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar26 == *piVar39) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(iVar26 == *piVar39)" (( "(") (binary_expression "iVar26 == *piVar39" (identifier "iVar26") (== "==") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}"))) (labeled_statement "LAB_00031c58:\n  pcVar51 = *(code **)(iVar37 + -0x7b70);" (statement_identifier "LAB_00031c58") (: ":") (expression_statement "pcVar51 = *(code **)(iVar37 + -0x7b70);" (assignment_expression "pcVar51 = *(code **)(iVar37 + -0x7b70)" (identifier "pcVar51") (= "=") (pointer_expression "*(code **)(iVar37 + -0x7b70)" (* "*") (cast_expression "(code **)(iVar37 + -0x7b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7b70)" (( "(") (binary_expression "iVar37 + -0x7b70" (identifier "iVar37") (+ "+") (number_literal "-0x7b70")) () ")"))))) (; ";"))) (expression_statement "uVar44 = 0x31c64;" (assignment_expression "uVar44 = 0x31c64" (identifier "uVar44") (= "=") (number_literal "0x31c64")) (; ";")) (expression_statement "(*pcVar51)();" (call_expression "(*pcVar51)()" (parenthesized_expression "(*pcVar51)" (( "(") (pointer_expression "*pcVar51" (* "*") (identifier "pcVar51")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar46 = pcVar51 + 0x6d3d0;" (assignment_expression "pcVar46 = pcVar51 + 0x6d3d0" (identifier "pcVar46") (= "=") (binary_expression "pcVar51 + 0x6d3d0" (identifier "pcVar51") (+ "+") (number_literal "0x6d3d0"))) (; ";")) (expression_statement "pcVar18 = *(char **)(pcVar51 + 0x65518);" (assignment_expression "pcVar18 = *(char **)(pcVar51 + 0x65518)" (identifier "pcVar18") (= "=") (pointer_expression "*(char **)(pcVar51 + 0x65518)" (* "*") (cast_expression "(char **)(pcVar51 + 0x65518)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x65518)" (( "(") (binary_expression "pcVar51 + 0x65518" (identifier "pcVar51") (+ "+") (number_literal "0x65518")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar9 + -0xa8) = piVar39;" (assignment_expression "*(int **)(puVar9 + -0xa8) = piVar39" (pointer_expression "*(int **)(puVar9 + -0xa8)" (* "*") (cast_expression "(int **)(puVar9 + -0xa8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xa8)" (( "(") (binary_expression "puVar9 + -0xa8" (identifier "puVar9") (+ "+") (number_literal "-0xa8")) () ")")))) (= "=") (identifier "piVar39")) (; ";")) (expression_statement "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;" (assignment_expression "*(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10" (pointer_expression "*(Elf32_Ehdr **)(puVar9 + -0xac)" (* "*") (cast_expression "(Elf32_Ehdr **)(puVar9 + -0xac)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xac)" (( "(") (binary_expression "puVar9 + -0xac" (identifier "puVar9") (+ "+") (number_literal "-0xac")) () ")")))) (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "*(code **)(puVar9 + -0xb8) = pcVar46;" (assignment_expression "*(code **)(puVar9 + -0xb8) = pcVar46" (pointer_expression "*(code **)(puVar9 + -0xb8)" (* "*") (cast_expression "(code **)(puVar9 + -0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xb8)" (( "(") (binary_expression "puVar9 + -0xb8" (identifier "puVar9") (+ "+") (number_literal "-0xb8")) () ")")))) (= "=") (identifier "pcVar46")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0xa4) = uVar44;" (assignment_expression "*(undefined4 *)(puVar9 + -0xa4) = uVar44" (pointer_expression "*(undefined4 *)(puVar9 + -0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0xa4)" (( "(") (binary_expression "puVar9 + -0xa4" (identifier "puVar9") (+ "+") (number_literal "-0xa4")) () ")")))) (= "=") (identifier "uVar44")) (; ";")) (if_statement "if (*pcVar18 == '\0') {\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" (if "if") (parenthesized_expression "(*pcVar18 == '\0')" (( "(") (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pcVar46 = *(code **)(pcVar51 + 0x65990);\n    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);\n    *pcVar18 = '\x01';\n    (*pcVar46)(uVar44);\n    pcVar46 = *(code **)(puVar9 + -0xb8);\n  }" ({ "{") (expression_statement "pcVar46 = *(code **)(pcVar51 + 0x65990);" (assignment_expression "pcVar46 = *(code **)(pcVar51 + 0x65990)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(pcVar51 + 0x65990)" (* "*") (cast_expression "(code **)(pcVar51 + 0x65990)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar51 + 0x65990)" (( "(") (binary_expression "pcVar51 + 0x65990" (identifier "pcVar51") (+ "+") (number_literal "0x65990")) () ")"))))) (; ";")) (expression_statement "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);" (assignment_expression "uVar44 = *(undefined4 *)(pcVar51 + 0x6560c)" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)(pcVar51 + 0x6560c)" (* "*") (cast_expression "(undefined4 *)(pcVar51 + 0x6560c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar51 + 0x6560c)" (( "(") (binary_expression "pcVar51 + 0x6560c" (identifier "pcVar51") (+ "+") (number_literal "0x6560c")) () ")"))))) (; ";")) (expression_statement "*pcVar18 = '\x01';" (assignment_expression "*pcVar18 = '\x01'" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "(*pcVar46)(uVar44);" (call_expression "(*pcVar46)(uVar44)" (parenthesized_expression "(*pcVar46)" (( "(") (pointer_expression "*pcVar46" (* "*") (identifier "pcVar46")) () ")")) (argument_list "(uVar44)" (( "(") (identifier "uVar44") () ")"))) (; ";")) (expression_statement "pcVar46 = *(code **)(puVar9 + -0xb8);" (assignment_expression "pcVar46 = *(code **)(puVar9 + -0xb8)" (identifier "pcVar46") (= "=") (pointer_expression "*(code **)(puVar9 + -0xb8)" (* "*") (cast_expression "(code **)(puVar9 + -0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xb8)" (( "(") (binary_expression "puVar9 + -0xb8" (identifier "puVar9") (+ "+") (number_literal "-0xb8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pEVar10 = pEVar27;" (assignment_expression "pEVar10 = pEVar27" (identifier "pEVar10") (= "=") (identifier "pEVar27")) (; ";")) (if_statement "if ((int)pEVar27 < 0) {\n    pEVar10 = (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    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;\n  }" ({ "{") (expression_statement "pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;" (assignment_expression "pEVar10 = (Elf32_Ehdr *)-(int)pEVar27" (identifier "pEVar10") (= "=") (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 "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);" (assignment_expression "iVar8 = (**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar46 + -0x7f7c))\n                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" (parenthesized_expression "(**(code **)(pcVar46 + -0x7f7c))" (( "(") (pointer_expression "**(code **)(pcVar46 + -0x7f7c)" (* "*") (pointer_expression "*(code **)(pcVar46 + -0x7f7c)" (* "*") (cast_expression "(code **)(pcVar46 + -0x7f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar46 + -0x7f7c)" (( "(") (binary_expression "pcVar46 + -0x7f7c" (identifier "pcVar46") (+ "+") (number_literal "-0x7f7c")) () ")"))))) () ")")) (argument_list "(iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5)" (( "(") (identifier "iVar26") (, ",") (pointer_expression "*(undefined4 *)(pcVar46 + -0x7dc4)" (* "*") (cast_expression "(undefined4 *)(pcVar46 + -0x7dc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar46 + -0x7dc4)" (( "(") (binary_expression "pcVar46 + -0x7dc4" (identifier "pcVar46") (+ "+") (number_literal "-0x7dc4")) () ")")))) (, ",") (binary_expression "(int)pEVar10 << 5" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if ((int)pEVar27 < 0) {\n    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\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    iVar8 = -*(int *)(iVar26 + 4);\n    *(int *)(iVar26 + 4) = iVar8;\n  }" ({ "{") (expression_statement "iVar8 = -*(int *)(iVar26 + 4);" (assignment_expression "iVar8 = -*(int *)(iVar26 + 4)" (identifier "iVar8") (= "=") (unary_expression "-*(int *)(iVar26 + 4)" (- "-") (pointer_expression "*(int *)(iVar26 + 4)" (* "*") (cast_expression "(int *)(iVar26 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 4)" (( "(") (binary_expression "iVar26 + 4" (identifier "iVar26") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "*(int *)(iVar26 + 4) = iVar8;" (assignment_expression "*(int *)(iVar26 + 4) = iVar8" (pointer_expression "*(int *)(iVar26 + 4)" (* "*") (cast_expression "(int *)(iVar26 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 4)" (( "(") (binary_expression "iVar26 + 4" (identifier "iVar26") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (labeled_statement "joined_r0x00030154:\n  if (iVar8 != 0) goto LAB_00030180;" (statement_identifier "joined_r0x00030154") (: ":") (if_statement "if (iVar8 != 0) goto LAB_00030180;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00030180;" (goto "goto") (statement_identifier "LAB_00030180") (; ";")))) (expression_statement "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);" (assignment_expression "pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1)" (( "(") (binary_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1" (cast_expression "(int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" (& "&") (field_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))" (( "(") (cast_expression "(Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar5 + 0xffffffcc)" (( "(") (binary_expression "(int)pEVar5 + 0xffffffcc" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (+ "+") (number_literal "0xffffffcc")) () ")"))) () ")")) (-> "->") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;" (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"))) () ")")) (goto_statement "goto LAB_00030180;" (goto "goto") (statement_identifier "LAB_00030180") (; ";"))) (expression_statement "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;" (assignment_expression "iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (field_expression "iVar8._0_2_" (identifier "iVar8") (. ".") (field_identifier "_0_2_")) (= "=") (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" (( "(") (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" (( "(") (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (+ "+") (number_literal "0xffffffccU")) () ")"))) () ")")) (-> "->") (field_identifier "e_phnum"))) (; ";")) (expression_statement "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;" (assignment_expression "iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (field_expression "iVar8._2_2_" (identifier "iVar8") (. ".") (field_identifier "_2_2_")) (= "=") (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))" (( "(") (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar7 + 0xffffffccU)" (( "(") (binary_expression "(int)pEVar7 + 0xffffffccU" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (+ "+") (number_literal "0xffffffccU")) () ")"))) () ")")) (-> "->") (field_identifier "e_shentsize"))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (& "&") (field_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))" (( "(") (cast_expression "(Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar7 + 0xffffffcc)" (( "(") (binary_expression "(int)pEVar7 + 0xffffffcc" (cast_expression "(int)pEVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar7")) (+ "+") (number_literal "0xffffffcc")) () ")"))) () ")")) (-> "->") (field_identifier "e_shnum"))))) (; ";")) (goto_statement "goto joined_r0x00030154;" (goto "goto") (statement_identifier "joined_r0x00030154") (; ";")) (labeled_statement "LAB_00030180:\n  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" (statement_identifier "LAB_00030180") (: ":") (if_statement "if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }\n  else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" (if "if") (parenthesized_expression "((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37))" (( "(") (binary_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||\n     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" (parenthesized_expression "(((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0)" (( "(") (binary_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0" (parenthesized_expression "((undefined1  [52])*in_t3 & (undefined1  [52])0x1)" (( "(") (binary_expression "(undefined1  [52])*in_t3 & (undefined1  [52])0x1" (binary_expression "(undefined1  [52])*in_t3" (parenthesized_expression "(undefined1  [52])" (( "(") (subscript_expression "undefined1  [52]" (identifier "undefined1") ([ "[") (number_literal "52") (] "]")) () ")")) (* "*") (identifier "in_t3")) (& "&") (cast_expression "(undefined1  [52])0x1" (( "(") (type_descriptor "undefined1  [52]" (type_identifier "undefined1") (abstract_array_declarator "[52]" ([ "[") (number_literal "52") (] "]"))) () ")") (number_literal "0x1"))) () ")")) (== "==") (cast_expression "(undefined1  [52])0x0" (( "(") (type_descriptor "undefined1  [52]" (type_identifier "undefined1") (abstract_array_declarator "[52]" ([ "[") (number_literal "52") (] "]"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)" (( "(") (comma_expression "iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._0_1_ = param_2->e_ident_class" (field_expression "iVar37._0_1_" (identifier "iVar37") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "param_2->e_ident_class" (identifier "param_2") (-> "->") (field_identifier "e_ident_class"))) (, ",") (comma_expression "iVar37._1_1_ = param_2->e_ident_data,\n     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._1_1_ = param_2->e_ident_data" (field_expression "iVar37._1_1_" (identifier "iVar37") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "param_2->e_ident_data" (identifier "param_2") (-> "->") (field_identifier "e_ident_data"))) (, ",") (comma_expression "iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._2_1_ = param_2->e_ident_version" (field_expression "iVar37._2_1_" (identifier "iVar37") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "param_2->e_ident_version" (identifier "param_2") (-> "->") (field_identifier "e_ident_version"))) (, ",") (comma_expression "iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37" (assignment_expression "iVar37._3_1_ = param_2->e_ident_osabi" (field_expression "iVar37._3_1_" (identifier "iVar37") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "param_2->e_ident_osabi" (identifier "param_2") (-> "->") (field_identifier "e_ident_osabi"))) (, ",") (binary_expression "-1 < iVar37" (number_literal "-1") (< "<") (identifier "iVar37")))))) () ")"))) () ")")) (compound_statement "{\n    if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }\n    param_1[1] = (int)pEVar5;\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }\n  }" ({ "{") (if_statement "if (*param_1 < (int)pEVar5) {\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" (if "if") (parenthesized_expression "(*param_1 < (int)pEVar5)" (( "(") (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) () ")")) (compound_statement "{\nLAB_00030268:\n      pEVar27 = pEVar5;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n    }" ({ "{") (labeled_statement "LAB_00030268:\n      pEVar27 = pEVar5;" (statement_identifier "LAB_00030268") (: ":") (expression_statement "pEVar27 = pEVar5;" (assignment_expression "pEVar27 = pEVar5" (identifier "pEVar27") (= "=") (identifier "pEVar5")) (; ";"))) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" (( "(") (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" (* "*") (cast_expression "(code *)PTR___gmpz_realloc_000975bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_realloc_000975bc"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) (; ";")) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" (identifier "unaff_s0") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\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 "{\nLAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);\n      pEVar30 = (Elf32_Ehdr *)param_1[2];\n      pEVar27 = *(Elf32_Ehdr **)unaff_s5;\n      pEVar24 = pEVar30;\n      unaff_s0 = pEVar5;\n      pEVar7 = unaff_s5;\n      if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }\n      *(Elf32_Ehdr **)pEVar30 = pEVar27;\n    }" ({ "{") (labeled_statement "LAB_000301b4:\n      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" (statement_identifier "LAB_000301b4") (: ":") (expression_statement "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar5[-1].e_shstrndx" (& "&") (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" (identifier "pEVar5") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "pEVar30 = (Elf32_Ehdr *)param_1[2];" (assignment_expression "pEVar30 = (Elf32_Ehdr *)param_1[2]" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)param_1[2]" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pEVar27 = *(Elf32_Ehdr **)unaff_s5;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)unaff_s5" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)unaff_s5" (* "*") (cast_expression "(Elf32_Ehdr **)unaff_s5" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "unaff_s5")))) (; ";")) (expression_statement "pEVar24 = pEVar30;" (assignment_expression "pEVar24 = pEVar30" (identifier "pEVar24") (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" (identifier "unaff_s0") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "pEVar7 = unaff_s5;" (assignment_expression "pEVar7 = unaff_s5" (identifier "pEVar7") (= "=") (identifier "unaff_s5")) (; ";")) (if_statement "if (puVar9 != (undefined1 *)0x0) {\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" (if "if") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);\n        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);\n        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);\n      }" ({ "{") (do_statement "do {\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        } while (puVar9 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n          *(Elf32_Ehdr **)pEVar24 = pEVar27;\n          puVar9 = puVar9 + -1;\n          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;\n          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;\n          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;\n        }" ({ "{") (expression_statement "*(Elf32_Ehdr **)pEVar24 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar24 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar24" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar24" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar24"))) (= "=") (identifier "pEVar27")) (; ";")) (expression_statement "puVar9 = puVar9 + -1;" (assignment_expression "puVar9 = puVar9 + -1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;" (assignment_expression "pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class" (identifier "pEVar27") (= "=") (pointer_expression "*(Elf32_Ehdr **)&pEVar7->e_ident_class" (* "*") (cast_expression "(Elf32_Ehdr **)&pEVar7->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&pEVar7->e_ident_class" (& "&") (field_expression "pEVar7->e_ident_class" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_class")))))) (; ";")) (expression_statement "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;" (assignment_expression "pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class" (identifier "pEVar24") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar24->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar24->e_ident_class" (& "&") (field_expression "pEVar24->e_ident_class" (identifier "pEVar24") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (expression_statement "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;" (assignment_expression "pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)&pEVar7->e_ident_class" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pEVar7->e_ident_class" (& "&") (field_expression "pEVar7->e_ident_class" (identifier "pEVar7") (-> "->") (field_identifier "e_ident_class"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined1 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);" (assignment_expression "unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" (identifier "unaff_s0") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar5 * 4 + -4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar5 * 4 + -4)" (( "(") (binary_expression "(int)pEVar5 * 4 + -4" (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (* "*") (number_literal "4")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);" (assignment_expression "pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" (identifier "pEVar30") (= "=") (cast_expression "(Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3)" (( "(") (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3" (binary_expression "pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4" (field_expression "pEVar30->e_ident_magic_str" (identifier "pEVar30") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)&pEVar5[-1].e_shstrndx * 4" (cast_expression "(int)&pEVar5[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar5[-1].e_shstrndx" (& "&") (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" (identifier "pEVar5") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(Elf32_Ehdr **)pEVar30 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pEVar30 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pEVar30" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar30" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar30"))) (= "=") (identifier "pEVar27")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s0 = pEVar5;\n    if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }\nLAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }\n  }" ({ "{") (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" (identifier "unaff_s0") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if (pEVar5 != (Elf32_Ehdr *)0x0) {\n      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\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      param_2 = *(Elf32_Ehdr **)(param_4 + 8);\n      pEVar27 = param_2;\n      pEVar30 = unaff_s5;\n      pEVar40 = pEVar5;\n      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);\n      if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }\n      pEVar16 = pEVar5;\n      if (*param_1 < (int)pEVar5) goto LAB_00030268;\n      param_1[1] = (int)pEVar5;\n      goto LAB_000301b4;\n    }" ({ "{") (expression_statement "param_2 = *(Elf32_Ehdr **)(param_4 + 8);" (assignment_expression "param_2 = *(Elf32_Ehdr **)(param_4 + 8)" (identifier "param_2") (= "=") (pointer_expression "*(Elf32_Ehdr **)(param_4 + 8)" (* "*") (cast_expression "(Elf32_Ehdr **)(param_4 + 8)" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pEVar27 = param_2;" (assignment_expression "pEVar27 = param_2" (identifier "pEVar27") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar30 = unaff_s5;" (assignment_expression "pEVar30 = unaff_s5" (identifier "pEVar30") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pEVar40 = pEVar5;" (assignment_expression "pEVar40 = pEVar5" (identifier "pEVar40") (= "=") (identifier "pEVar5")) (; ";")) (expression_statement "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);" (assignment_expression "iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5)" (parenthesized_expression "(*(code *)PTR___gmpn_sub_n_00097514)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sub_n_00097514" (* "*") (cast_expression "(code *)PTR___gmpn_sub_n_00097514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sub_n_00097514"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }\n      else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;\n        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;\n        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n        do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" ({ "{") (labeled_statement "LAB_000303e0:\n        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" (statement_identifier "LAB_000303e0") (: ":") (if_statement "if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;" (if "if") (parenthesized_expression "((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5))" (( "(") (binary_expression "(param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)" (parenthesized_expression "(param_2 == unaff_s5)" (( "(") (binary_expression "param_2 == unaff_s5" (identifier "param_2") (== "==") (identifier "unaff_s5")) () ")")) (|| "||") (parenthesized_expression "((int)pEVar10 <= (int)pEVar5)" (( "(") (binary_expression "(int)pEVar10 <= (int)pEVar5" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (<= "<=") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) () ")"))) () ")")) (goto_statement "goto LAB_00030390;" (goto "goto") (statement_identifier "LAB_00030390") (; ";")))) (expression_statement "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;" (assignment_expression "in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" (identifier "in_t2") (= "=") (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar10 * 4" (field_expression "param_2->e_ident_magic_str" (identifier "param_2") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar10 * 4" (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" (identifier "param_2") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" (identifier "unaff_s5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        } while (pbVar15 != (byte *)in_t2);" (do "do") (compound_statement "{\n          uVar44 = *(undefined4 *)pbVar15;\n          pbVar15 = pbVar15 + 4;\n          *(undefined4 *)pbVar14 = uVar44;\n          pbVar14 = pbVar14 + 4;\n        }" ({ "{") (expression_statement "uVar44 = *(undefined4 *)pbVar15;" (assignment_expression "uVar44 = *(undefined4 *)pbVar15" (identifier "uVar44") (= "=") (pointer_expression "*(undefined4 *)pbVar15" (* "*") (cast_expression "(undefined4 *)pbVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 4" (identifier "pbVar15") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar14 = uVar44;" (assignment_expression "*(undefined4 *)pbVar14 = uVar44" (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14"))) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar15 != (byte *)in_t2)" (( "(") (binary_expression "pbVar15 != (byte *)in_t2" (identifier "pbVar15") (!= "!=") (cast_expression "(byte *)in_t2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "in_t2"))) () ")")) (; ";")) (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" (identifier "iVar26") (= "=") (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18")))) (; ";")) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" (identifier "unaff_s0") (= "=") (identifier "pEVar5")) (; ";")) (} "}")) (else_clause "else {\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" (else "else") (compound_statement "{\n        if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }\nLAB_00030390:\n        iVar26 = *(int *)pcVar18;\n        unaff_s0 = pEVar5;\n      }" ({ "{") (if_statement "if ((int)pEVar5 < (int)pEVar10) {\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" (if "if") (parenthesized_expression "((int)pEVar5 < (int)pEVar10)" (( "(") (binary_expression "(int)pEVar5 < (int)pEVar10" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (< "<") (cast_expression "(int)pEVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar10"))) () ")")) (compound_statement "{\n          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);\n          iVar8 = *(int *)pbVar14;\n          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n          *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }\n          goto LAB_000303e0;\n        }" ({ "{") (expression_statement "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "param_2->e_ident_magic_str" (identifier "param_2") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);" (assignment_expression "pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1)" (( "(") (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1" (binary_expression "unaff_s5->e_ident_magic_str + (int)pEVar5 * 4" (field_expression "unaff_s5->e_ident_magic_str" (identifier "unaff_s5") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar5 * 4" (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)pbVar14;" (assignment_expression "iVar8 = *(int *)pbVar14" (identifier "iVar8") (= "=") (pointer_expression "*(int *)pbVar14" (* "*") (cast_expression "(int *)pbVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -1)" (( "(") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar15" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar15"))) (= "=") (identifier "pEVar27")) (; ";")) (while_statement "while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" (while "while") (parenthesized_expression "(pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0)" (( "(") (comma_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0" (assignment_expression "pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str" (identifier "pEVar5") (= "=") (cast_expression "(Elf32_Ehdr *)pEVar5->e_ident_magic_str" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "pEVar5->e_ident_magic_str" (identifier "pEVar5") (-> "->") (field_identifier "e_ident_magic_str")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            pbVar15 = pbVar15 + 4;\n            if (pEVar10 == pEVar5) goto LAB_00030390;\n            iVar8 = *(int *)(pbVar14 + 4);\n            pbVar14 = pbVar14 + 4;\n            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);\n            *(Elf32_Ehdr **)pbVar15 = pEVar27;\n          }" ({ "{") (expression_statement "pbVar15 = pbVar15 + 4;" (assignment_expression "pbVar15 = pbVar15 + 4" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 4" (identifier "pbVar15") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (pEVar10 == pEVar5) goto LAB_00030390;" (if "if") (parenthesized_expression "(pEVar10 == pEVar5)" (( "(") (binary_expression "pEVar10 == pEVar5" (identifier "pEVar10") (== "==") (identifier "pEVar5")) () ")")) (goto_statement "goto LAB_00030390;" (goto "goto") (statement_identifier "LAB_00030390") (; ";"))) (expression_statement "iVar8 = *(int *)(pbVar14 + 4);" (assignment_expression "iVar8 = *(int *)(pbVar14 + 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pbVar14 + 4)" (* "*") (cast_expression "(int *)(pbVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + 4)" (( "(") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);" (assignment_expression "pEVar27 = (Elf32_Ehdr *)(iVar8 + -1)" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)(iVar8 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -1)" (( "(") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(Elf32_Ehdr **)pbVar15 = pEVar27;" (assignment_expression "*(Elf32_Ehdr **)pbVar15 = pEVar27" (pointer_expression "*(Elf32_Ehdr **)pbVar15" (* "*") (cast_expression "(Elf32_Ehdr **)pbVar15" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar15"))) (= "=") (identifier "pEVar27")) (; ";")) (} "}"))) (goto_statement "goto LAB_000303e0;" (goto "goto") (statement_identifier "LAB_000303e0") (; ";")) (} "}"))) (labeled_statement "LAB_00030390:\n        iVar26 = *(int *)pcVar18;" (statement_identifier "LAB_00030390") (: ":") (expression_statement "iVar26 = *(int *)pcVar18;" (assignment_expression "iVar26 = *(int *)pcVar18" (identifier "iVar26") (= "=") (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18")))) (; ";"))) (expression_statement "unaff_s0 = pEVar5;" (assignment_expression "unaff_s0 = pEVar5" (identifier "unaff_s0") (= "=") (identifier "pEVar5")) (; ";")) (} "}")))) (while_statement "while (pEVar5 = pEVar16, iVar26 == 0) {\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" (while "while") (parenthesized_expression "(pEVar5 = pEVar16, iVar26 == 0)" (( "(") (comma_expression "pEVar5 = pEVar16, iVar26 == 0" (assignment_expression "pEVar5 = pEVar16" (identifier "pEVar5") (= "=") (identifier "pEVar16")) (, ",") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);\n        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;\n        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;\n        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;\n        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;\n      }" ({ "{") (expression_statement "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);" (assignment_expression "pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" (identifier "pEVar16") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar5[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar5[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar5[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar5[-1].e_shstrndx" (& "&") (field_expression "pEVar5[-1].e_shstrndx" (subscript_expression "pEVar5[-1]" (identifier "pEVar5") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;" (if "if") (parenthesized_expression "(pEVar16 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar16 == (Elf32_Ehdr *)0x0" (identifier "pEVar16") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00030250;" (goto "goto") (statement_identifier "LAB_00030250") (; ";"))) (expression_statement "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;" (assignment_expression "iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum" (field_expression "iVar26._0_2_" (identifier "iVar26") (. ".") (field_identifier "_0_2_")) (= "=") (field_expression "in_t1[-0xffffffff00000001].e_phnum" (subscript_expression "in_t1[-0xffffffff00000001]" (identifier "in_t1") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_phnum"))) (; ";")) (expression_statement "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;" (assignment_expression "iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize" (field_expression "iVar26._2_2_" (identifier "iVar26") (. ".") (field_identifier "_2_2_")) (= "=") (field_expression "in_t1[-0xffffffff00000001].e_shentsize" (subscript_expression "in_t1[-0xffffffff00000001]" (identifier "in_t1") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shentsize"))) (; ";")) (expression_statement "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;" (assignment_expression "in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum" (identifier "in_t1") (= "=") (cast_expression "(Elf32_Ehdr *)&in_t1[-1].e_shnum" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&in_t1[-1].e_shnum" (& "&") (field_expression "in_t1[-1].e_shnum" (subscript_expression "in_t1[-1]" (identifier "in_t1") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) (; ";")) (} "}"))) (expression_statement "pEVar16 = pEVar5;" (assignment_expression "pEVar16 = pEVar5" (identifier "pEVar16") (= "=") (identifier "pEVar5")) (; ";")) (if_statement "if (*param_1 < (int)pEVar5) goto LAB_00030268;" (if "if") (parenthesized_expression "(*param_1 < (int)pEVar5)" (( "(") (binary_expression "*param_1 < (int)pEVar5" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) () ")")) (goto_statement "goto LAB_00030268;" (goto "goto") (statement_identifier "LAB_00030268") (; ";"))) (expression_statement "param_1[1] = (int)pEVar5;" (assignment_expression "param_1[1] = (int)pEVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)pEVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar5"))) (; ";")) (goto_statement "goto LAB_000301b4;" (goto "goto") (statement_identifier "LAB_000301b4") (; ";")) (} "}"))) (labeled_statement "LAB_00030250:\n    if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" (statement_identifier "LAB_00030250") (: ":") (if_statement "if (*param_1 < 0) {\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\n    }\n    else {\n      param_1[1] = 0;\n    }" (if "if") (parenthesized_expression "(*param_1 < 0)" (( "(") (binary_expression "*param_1 < 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pEVar27 = (Elf32_Ehdr *)0x0;\n      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);\n      param_1[1] = 0;\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"))) (; ";")) (expression_statement "(*(code *)PTR___gmpz_realloc_000975bc)(param_1);" (call_expression "(*(code *)PTR___gmpz_realloc_000975bc)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_realloc_000975bc)" (( "(") (pointer_expression "*(code *)PTR___gmpz_realloc_000975bc" (* "*") (cast_expression "(code *)PTR___gmpz_realloc_000975bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_realloc_000975bc"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      param_1[1] = 0;\n    }" (else "else") (compound_statement "{\n      param_1[1] = 0;\n    }" ({ "{") (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}"))))) (expression_statement "pEVar5 = local_30;" (assignment_expression "pEVar5 = local_30" (identifier "pEVar5") (= "=") (identifier "local_30")) (; ";")) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" (identifier "param_3") (= "=") (identifier "pEVar30")) (; ";")) (expression_statement "puVar9 = puVar47;" (assignment_expression "puVar9 = puVar47" (identifier "puVar9") (= "=") (identifier "puVar47")) (; ";")) (if_statement "if (local_30 != (Elf32_Ehdr *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" (if "if") (parenthesized_expression "(local_30 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "local_30 != (Elf32_Ehdr *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();\n    param_3 = pEVar30;\n  }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_00097614)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_00097614" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_00097614" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_00097614"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_3 = pEVar30;" (assignment_expression "param_3 = pEVar30" (identifier "param_3") (= "=") (identifier "pEVar30")) (; ";")) (} "}"))) (goto_statement "goto LAB_00030200;" (goto "goto") (statement_identifier "LAB_00030200") (; ";")) (labeled_statement "LAB_00031bcc:\n  iVar37 = iVar37 + -1;" (statement_identifier "LAB_00031bcc") (: ":") (expression_statement "iVar37 = iVar37 + -1;" (assignment_expression "iVar37 = iVar37 + -1" (identifier "iVar37") (= "=") (binary_expression "iVar37 + -1" (identifier "iVar37") (+ "+") (number_literal "-1"))) (; ";"))) (if_statement "if (iVar37 == -1) goto code_r0x00031bd8;" (if "if") (parenthesized_expression "(iVar37 == -1)" (( "(") (binary_expression "iVar37 == -1" (identifier "iVar37") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto code_r0x00031bd8;" (goto "goto") (statement_identifier "code_r0x00031bd8") (; ";"))) (expression_statement "uVar17 = *puVar23;" (assignment_expression "uVar17 = *puVar23" (identifier "uVar17") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (if_statement "if (uVar17 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (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 "puVar23 = puVar23 + -1;" (assignment_expression "puVar23 = puVar23 + -1" (identifier "puVar23") (= "=") (binary_expression "puVar23 + -1" (identifier "puVar23") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar6 % uVar17 == 0) {\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" (if "if") (parenthesized_expression "(uVar6 % uVar17 == 0)" (( "(") (binary_expression "uVar6 % uVar17 == 0" (binary_expression "uVar6 % uVar17" (identifier "uVar6") (% "%") (identifier "uVar17")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pEVar27 = pEVar10;\n    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);\n    iVar8 = 0;\n    iVar37 = *(int *)(puVar9 + -0x90);\n    if (iVar26 == 0) goto LAB_00031824;\n    pEVar27 = (Elf32_Ehdr *)0x81;\n    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;\n    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);\n    goto LAB_00031c58;\n  }" ({ "{") (expression_statement "pEVar27 = pEVar10;" (assignment_expression "pEVar27 = pEVar10" (identifier "pEVar27") (= "=") (identifier "pEVar10")) (; ";")) (expression_statement "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);" (assignment_expression "iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19)" (identifier "iVar26") (= "=") (call_expression "(**(code **)(iVar8 + -0x7b80))(puVar19)" (parenthesized_expression "(**(code **)(iVar8 + -0x7b80))" (( "(") (pointer_expression "**(code **)(iVar8 + -0x7b80)" (* "*") (pointer_expression "*(code **)(iVar8 + -0x7b80)" (* "*") (cast_expression "(code **)(iVar8 + -0x7b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7b80)" (( "(") (binary_expression "iVar8 + -0x7b80" (identifier "iVar8") (+ "+") (number_literal "-0x7b80")) () ")"))))) () ")")) (argument_list "(puVar19)" (( "(") (identifier "puVar19") () ")")))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar37 = *(int *)(puVar9 + -0x90);" (assignment_expression "iVar37 = *(int *)(puVar9 + -0x90)" (identifier "iVar37") (= "=") (pointer_expression "*(int *)(puVar9 + -0x90)" (* "*") (cast_expression "(int *)(puVar9 + -0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x90)" (( "(") (binary_expression "puVar9 + -0x90" (identifier "puVar9") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (if_statement "if (iVar26 == 0) goto LAB_00031824;" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00031824;" (goto "goto") (statement_identifier "LAB_00031824") (; ";"))) (expression_statement "pEVar27 = (Elf32_Ehdr *)0x81;" (assignment_expression "pEVar27 = (Elf32_Ehdr *)0x81" (identifier "pEVar27") (= "=") (cast_expression "(Elf32_Ehdr *)0x81" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x81"))) (; ";")) (expression_statement "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;" (assignment_expression "iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4" (identifier "iVar26") (= "=") (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x29e4" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar37 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar37 + -0x7fd4)" (( "(") (binary_expression "iVar37 + -0x7fd4" (identifier "iVar37") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x29e4"))) (; ";")) (expression_statement "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);" (call_expression "(**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" (parenthesized_expression "(**(code **)(iVar37 + -0x7c20))" (( "(") (pointer_expression "**(code **)(iVar37 + -0x7c20)" (* "*") (pointer_expression "*(code **)(iVar37 + -0x7c20)" (* "*") (cast_expression "(code **)(iVar37 + -0x7c20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar37 + -0x7c20)" (( "(") (binary_expression "iVar37 + -0x7c20" (identifier "iVar37") (+ "+") (number_literal "-0x7c20")) () ")"))))) () ")")) (argument_list "(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40)" (( "(") (identifier "iVar26") (, ",") (number_literal "0x81") (, ",") (binary_expression "*(int *)(iVar37 + -0x7fd4) + -0x2a40" (pointer_expression "*(int *)(iVar37 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar37 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar37 + -0x7fd4)" (( "(") (binary_expression "iVar37 + -0x7fd4" (identifier "iVar37") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x2a40")) () ")"))) (; ";")) (goto_statement "goto LAB_00031c58;" (goto "goto") (statement_identifier "LAB_00031c58") (; ";")) (} "}"))) (goto_statement "goto LAB_00031bcc;" (goto "goto") (statement_identifier "LAB_00031bcc") (; ";")) (labeled_statement "code_r0x00031bd8:\n  iVar50 = 1;" (statement_identifier "code_r0x00031bd8") (: ":") (expression_statement "iVar50 = 1;" (assignment_expression "iVar50 = 1" (identifier "iVar50") (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = uVar55;" (assignment_expression "uVar6 = uVar55" (identifier "uVar6") (= "=") (identifier "uVar55")) (; ";")) (labeled_statement "LAB_00031b4c:\n  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" (statement_identifier "LAB_00031b4c") (: ":") (expression_statement "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;" (assignment_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55" (pointer_expression "*(uint *)(puVar9 + iVar37 * 4 + -0x68)" (* "*") (cast_expression "(uint *)(puVar9 + iVar37 * 4 + -0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + iVar37 * 4 + -0x68)" (( "(") (binary_expression "puVar9 + iVar37 * 4 + -0x68" (binary_expression "puVar9 + iVar37 * 4" (identifier "puVar9") (+ "+") (binary_expression "iVar37 * 4" (identifier "iVar37") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (identifier "uVar55")) (; ";"))) (labeled_statement "LAB_00031a4c:\n  uVar17 = uVar55 + 2;" (statement_identifier "LAB_00031a4c") (: ":") (expression_statement "uVar17 = uVar55 + 2;" (assignment_expression "uVar17 = uVar55 + 2" (identifier "uVar17") (= "=") (binary_expression "uVar55 + 2" (identifier "uVar55") (+ "+") (number_literal "2"))) (; ";"))) (expression_statement "iVar26 = (uint)(uVar17 < uVar55) + iVar26;" (assignment_expression "iVar26 = (uint)(uVar17 < uVar55) + iVar26" (identifier "iVar26") (= "=") (binary_expression "(uint)(uVar17 < uVar55) + iVar26" (call_expression "(uint)(uVar17 < uVar55)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < uVar55)" (( "(") (binary_expression "uVar17 < uVar55" (identifier "uVar17") (< "<") (identifier "uVar55")) () ")"))) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar55 = uVar17;" (assignment_expression "uVar55 = uVar17" (identifier "uVar55") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "iVar37 = iVar50;" (assignment_expression "iVar37 = iVar50" (identifier "iVar37") (= "=") (identifier "iVar50")) (; ";")) (if_statement "if (uVar54 <= uVar17) goto LAB_00031a64;" (if "if") (parenthesized_expression "(uVar54 <= uVar17)" (( "(") (binary_expression "uVar54 <= uVar17" (identifier "uVar54") (<= "<=") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_00031a64;" (goto "goto") (statement_identifier "LAB_00031a64") (; ";"))) (goto_statement "goto LAB_00031a28;" (goto "goto") (statement_identifier "LAB_00031a28") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (primitive_type) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (do_statement body: (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))))))) 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: (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: (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: (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)))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (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: (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)))))))))) (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: (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: (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: (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: (pointer_expression argument: (cast_expression 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)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (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: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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))) (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: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (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: (pointer_expression argument: (cast_expression 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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression 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: (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) (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: (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: (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)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) 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: (pointer_expression argument: (cast_expression 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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (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: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression 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: (identifier) 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)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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))))))))) 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: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) 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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (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: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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))))))) 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: (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))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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))))))) (goto_statement label: (statement_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: (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: (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: (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: (pointer_expression argument: (cast_expression 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: (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)) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression 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: (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: (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: (pointer_expression argument: (cast_expression 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: (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: (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression 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))))))) (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: (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: (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: (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: (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: (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: (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: (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)))) (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: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (binary_expression left: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (parenthesized_expression (binary_expression left: (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: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (parenthesized_expression (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))))) 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: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (parenthesized_expression (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))))) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (parenthesized_expression (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))))) 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: (parenthesized_expression (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))))) field: (field_identifier)))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (binary_expression left: (number_literal) 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: (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (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: (subscript_expression argument: (identifier) index: (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 (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)))))) alternative: (else_clause (compound_statement (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: (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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)))) (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: (identifier))) right: (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) 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: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (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))) (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: (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: (identifier))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

int MASKED(int *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,int param_4)

{
  bool bVar1;
  longlong lVar2;
  Elf32_Ehdr *pEVar3;
  undefined *puVar4;
  Elf32_Ehdr *pEVar5;
  uint uVar6;
  Elf32_Ehdr *pEVar7;
  int iVar8;
  undefined1 *puVar9;
  Elf32_Ehdr *pEVar10;
  undefined4 uVar11;
  int *piVar12;
  int iVar13;
  byte *pbVar14;
  byte *pbVar15;
  Elf32_Ehdr *pEVar16;
  uint uVar17;
  char *pcVar18;
  uint *puVar19;
  undefined1 *puVar20;
  Elf32_Ehdr *pEVar21;
  undefined4 uVar22;
  uint *puVar23;
  Elf32_Ehdr *pEVar24;
  undefined4 uVar25;
  int iVar26;
  Elf32_Ehdr *pEVar27;
  Elf32_Ehdr *pEVar28;
  undefined4 uVar29;
  Elf32_Ehdr *pEVar30;
  undefined4 *puVar31;
  undefined4 uVar32;
  undefined4 uVar33;
  Elf32_Ehdr *pEVar34;
  undefined4 *puVar35;
  Elf32_Ehdr *in_t1;
  char *in_t2;
  Elf32_Ehdr *in_t3;
  undefined1 *puVar36;
  Elf32_Ehdr *unaff_s0;
  int iVar37;
  word *pwVar38;
  int *piVar39;
  Elf32_Ehdr *pEVar40;
  Elf32_Ehdr *pEVar41;
  Elf32_Ehdr *pEVar42;
  int *piVar43;
  Elf32_Ehdr *unaff_s5;
  undefined4 uVar44;
  undefined *puVar45;
  code *pcVar46;
  undefined1 *puVar47;
  undefined1 *puVar48;
  undefined1 *puVar49;
  int iVar50;
  code *pcVar51;
  code *pcVar52;
  uint uVar53;
  uint uVar54;
  uint uVar55;
  undefined8 uVar56;
  undefined1 auStack_68 [32];
  Elf32_Ehdr *local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_00097540;
  puVar9 = auStack_68;
  puVar47 = auStack_68;
  puVar49 = auStack_68;
  puVar36 = auStack_68;
  pEVar5 = *(Elf32_Ehdr **)(param_4 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_00097540;
  pEVar10 = (Elf32_Ehdr *)-(int)pEVar5;
  if (-1 < (int)pEVar5) {
    pEVar10 = pEVar5;
  }
  pEVar40 = param_3;
  if (pEVar5 != (Elf32_Ehdr *)0x0) goto LAB_00030070;
  do {
    do {
      (*(code *)PTR___gmp_divide_by_zero_000975dc)();
LAB_00030070:
      puVar19 = *(uint **)(param_4 + 8);
      uVar6 = *puVar19;
      pEVar5 = (Elf32_Ehdr *)(uVar6 & 1);
    } while (pEVar5 == (Elf32_Ehdr *)0x0);
    pEVar27 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;
    pEVar16 = pEVar10;
    if (0 < (int)pEVar27) {
      pEVar7 = *(Elf32_Ehdr **)&param_2->e_ident_class;
      pEVar30 = pEVar7;
      if ((int)pEVar7 < 0) {
        pEVar30 = (Elf32_Ehdr *)-(int)pEVar7;
      }
      if (pEVar7 == (Elf32_Ehdr *)0x0) {
        param_1[1] = 0;
        puVar9 = auStack_68;
        goto LAB_00030200;
      }
      iVar37 = (int)pEVar27 << 5;
      local_30 = (Elf32_Ehdr *)0x0;
      iVar8 = (*(code *)PTR___gmpn_sec_powm_itch_00097538)(pEVar30,iVar37,pEVar10);
      uVar6 = (int)(pEVar10->e_ident_magic_str + iVar8 + -1) * 4;
      if (uVar6 < 0x7f01) {
        iVar8 = -(uVar6 + 7 & 0xfffffff8);
        puVar47 = auStack_68 + iVar8;
        unaff_s5 = (Elf32_Ehdr *)(&stack0xffffffb8 + iVar8);
      }
      else {
        unaff_s5 = (Elf32_Ehdr *)(*(code *)PTR___gmp_tmp_reentrant_alloc_000972f0)(&local_30);
      }
      in_t2 = (char *)((int)pEVar10 * 4);
      in_t3 = *(Elf32_Ehdr **)&pEVar40->e_ident_abiversion;
      pEVar27 = *(Elf32_Ehdr **)&param_2->e_ident_abiversion;
      in_t1 = (Elf32_Ehdr *)(unaff_s5->e_ident_magic_str + (int)pEVar10 * 4 + -1);
      *(Elf32_Ehdr **)(puVar47 + 0x1c) = in_t1;
      *(Elf32_Ehdr **)(puVar47 + 0x18) = pEVar10;
      *(uint **)(puVar47 + 0x14) = puVar19;
      *(int *)(puVar47 + 0x10) = iVar37;
      pEVar40 = in_t3;
      (*(code *)PTR___gmpn_sec_powm_000972d0)(unaff_s5);
      pcVar18 = in_t2 + (int)(unaff_s5->e_ident_magic_str + -5);
      iVar8 = *(int *)pcVar18;
      pEVar7 = in_t1;
      pEVar5 = pEVar10;
      goto joined_r0x00030154;
    }
  } while (pEVar27 != (Elf32_Ehdr *)0x0);
  if (pEVar10 == (Elf32_Ehdr *)0x1) {
    uVar6 = (uint)(uVar6 != 1);
  }
  else {
    uVar6 = 1;
  }
  param_1[1] = uVar6;
  *(undefined4 *)param_1[2] = 1;
LAB_00030200:
  iVar8 = *(int *)puVar4;
  if (local_2c == iVar8) {
    return iVar8;
  }
  pcVar51 = FUN_00030430;
  puVar45 = PTR___stack_chk_fail_000974d0;
  (*(code *)PTR___stack_chk_fail_000974d0)();
  *(undefined **)(puVar9 + -0x24) = puVar4;
  piVar39 = *(int **)(puVar45 + 0x67110);
  puVar35 = *(undefined4 **)(puVar9 + 0x10);
  *(undefined **)(puVar9 + -0x38) = puVar45 + 0x6ec10;
  *(Elf32_Ehdr **)(puVar9 + -0x14) = unaff_s5;
  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar16;
  *(int *)(puVar9 + -0x1c) = param_4;
  *(Elf32_Ehdr **)(puVar9 + -0x20) = param_2;
  *(code **)(puVar9 + -4) = pcVar51;
  *(undefined1 **)(puVar9 + -8) = auStack_68;
  *(int **)(puVar9 + -0xc) = param_1;
  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar9 + -0x28) = unaff_s0;
  *(undefined4 *)(puVar9 + -0x30) = 0;
  uVar44 = *(undefined4 *)(puVar9 + 0x14);
  *(int *)(puVar9 + -0x2c) = *piVar39;
  pEVar16 = pEVar5;
  pEVar30 = pEVar27;
  if (pEVar40 == (Elf32_Ehdr *)0x1) {
    pEVar7 = (Elf32_Ehdr *)0x0;
    pcVar51 = *(code **)(puVar45 + 0x66e78);
    *(undefined4 *)(puVar9 + -0x48) = *(undefined4 *)param_3;
    uVar11 = (*pcVar51)(uVar44);
    iVar8 = *(int *)(puVar9 + -0x38);
    pEVar5->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);
    pEVar5->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);
    pEVar5->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);
    pEVar5->e_ident_magic_str[2] = (char)uVar11;
LAB_0003056c:
    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);
    pcVar51 = *(code **)(iVar8 + -0x7a2c);
    pEVar40 = unaff_s0;
    puVar49 = puVar36;
    if (pEVar24 != (Elf32_Ehdr *)0x0) {
LAB_00030534:
      (*pcVar51)();
      iVar8 = *(int *)(puVar9 + -0x38);
    }
  }
  else {
    pEVar7 = pEVar5;
    unaff_s0 = pEVar40;
    if (pEVar40 == (Elf32_Ehdr *)0x2) {
      uVar22 = *(undefined4 *)param_3;
      uVar11 = *(undefined4 *)&param_3->e_ident_class;
      pcVar51 = *(code **)(puVar45 + 0x66f54);
      *(undefined4 *)(puVar9 + -0x40) = *puVar35;
      *(undefined4 *)(puVar9 + -0x44) = uVar22;
      *(undefined4 *)(puVar9 + -0x48) = uVar11;
      (*pcVar51)(uVar44);
      iVar8 = *(int *)(puVar9 + -0x38);
      puVar36 = auStack_68;
      goto LAB_0003056c;
    }
    if (((int)pEVar40 < 0x28) || ((int)pEVar27 - (int)pEVar40 < 0x28)) {
      uVar11 = *puVar35;
      pcVar51 = *(code **)(puVar45 + 0x6700c);
      *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;
      *(undefined4 *)(puVar9 + -0x44) = uVar11;
      pEVar16 = pEVar27;
      pEVar30 = param_3;
      (*pcVar51)(uVar44);
      iVar8 = *(int *)(puVar9 + -0x38);
      puVar36 = auStack_68;
      goto LAB_0003056c;
    }
    if ((int)pEVar40 < 200) {
LAB_00030504:
      pcVar51 = *(code **)(puVar45 + 0x6709c);
    }
    else {
      pcVar51 = *(code **)(puVar45 + 0x6709c);
      puVar49 = auStack_68;
      if (3999 < (int)pEVar27) {
        puVar49 = (undefined1 *)((int)pEVar40 * 4);
        if ((double)(int)pEVar40 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a70) +
            (double)(int)pEVar27 * *(double *)(*(int *)(puVar45 + 0x66c3c) + -0x2a68) <=
            (double)(int)pEVar40 * (double)(int)pEVar27) {
          param_1 = (int *)(puVar9 + -0x30);
          pEVar10 = (Elf32_Ehdr *)(**(code **)(puVar45 + 0x66ec0))(param_1,puVar49);
          iVar8 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7e7c))(pEVar27,pEVar40,0);
          uVar11 = (**(code **)(*(int *)(puVar9 + -0x38) + -0x7d50))(param_1,iVar8 << 2);
          *(Elf32_Ehdr **)(puVar9 + -0x44) = pEVar40;
          *(undefined4 *)(puVar9 + -0x40) = uVar11;
          *(Elf32_Ehdr **)(puVar9 + -0x48) = param_3;
          pwVar38 = (word *)((int)&pEVar40[-1].e_shstrndx + 1);
          pEVar7 = pEVar10;
          (**(code **)(*(int *)(puVar9 + -0x38) + -0x7ccc))(uVar44);
          iVar8 = *(int *)(puVar9 + -0x38);
          uVar11._0_1_ = pEVar10->e_ident_magic_num;
          uVar11._1_1_ = pEVar10->e_ident_magic_str[0];
          uVar11._2_1_ = pEVar10->e_ident_magic_str[1];
          uVar11._3_1_ = pEVar10->e_ident_magic_str[2];
          pEVar24 = pEVar5;
          pEVar42 = pEVar10;
          do {
            pEVar24->e_ident_magic_num = (char)((uint)uVar11 >> 0x18);
            pEVar24->e_ident_magic_str[0] = (char)((uint)uVar11 >> 0x10);
            pEVar24->e_ident_magic_str[1] = (char)((uint)uVar11 >> 8);
            pEVar24->e_ident_magic_str[2] = (char)uVar11;
            pwVar38 = (word *)((int)pwVar38 + -1);
            uVar11._0_1_ = pEVar42->e_ident_class;
            uVar11._1_1_ = pEVar42->e_ident_data;
            uVar11._2_1_ = pEVar42->e_ident_version;
            uVar11._3_1_ = pEVar42->e_ident_osabi;
            pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;
            pEVar42 = (Elf32_Ehdr *)&pEVar42->e_ident_class;
          } while (pwVar38 != (word *)0x0);
          pEVar5 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)pEVar40 * 4 + -1);
          pEVar5[-0xffffffff00000001].e_shnum = (short)((uint)uVar11 >> 0x10);
          pEVar5[-0xffffffff00000001].e_shstrndx = (short)uVar11;
          unaff_s0 = (Elf32_Ehdr *)0x0;
          puVar36 = puVar49;
          goto LAB_0003056c;
        }
        goto LAB_00030504;
      }
    }
    *(undefined4 **)(puVar9 + -0x44) = puVar35;
    *(Elf32_Ehdr **)(puVar9 + -0x48) = pEVar40;
    pEVar16 = pEVar27;
    pEVar30 = param_3;
    (*pcVar51)(uVar44);
    pEVar24 = *(Elf32_Ehdr **)(puVar9 + -0x30);
    iVar8 = *(int *)(puVar9 + -0x38);
    if (pEVar24 != (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(iVar8 + -0x7a2c);
      goto LAB_00030534;
    }
  }
  if (*(int *)(puVar9 + -0x2c) == *piVar39) {
    return *piVar39;
  }
  pcVar51 = *(code **)(iVar8 + -0x7b70);
  pcVar52 = FUN_000306c8;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6e978;
  puVar36 = puVar9 + -0xb0;
  *(Elf32_Ehdr **)(puVar9 + -0x70) = param_3;
  *(Elf32_Ehdr **)(puVar9 + -0x68) = pEVar10;
  pEVar10 = (Elf32_Ehdr *)((int)pEVar16 * 4);
  pEVar42 = *(Elf32_Ehdr **)(pcVar51 + 0x66e78);
  *(undefined1 **)(puVar9 + -0x60) = puVar49;
  *(int **)(puVar9 + -100) = param_1;
  *(undefined4 *)(puVar9 + -0x6c) = uVar44;
  *(Elf32_Ehdr **)(puVar9 + -0x74) = pEVar5;
  *(Elf32_Ehdr **)(puVar9 + -0x78) = pEVar27;
  *(Elf32_Ehdr **)(puVar9 + -0x80) = pEVar40;
  *(code **)(puVar9 + -0x5c) = pcVar52;
  *(int **)(puVar9 + -0x7c) = piVar39;
  *(code **)(puVar9 + -0x98) = pcVar46;
  *(undefined4 *)(puVar9 + -0x88) = 0;
  pEVar40 = *(Elf32_Ehdr **)(puVar9 + -0x48);
  pEVar5 = *(Elf32_Ehdr **)(puVar9 + -0x44);
  *(undefined4 *)(puVar9 + -0x84) = *(undefined4 *)pEVar42;
  if (pEVar10 < (Elf32_Ehdr *)0x7f01) {
    iVar8 = -((uint)&pEVar10->e_ident_osabi & 0xfffffff8);
    puVar36 = puVar9 + iVar8 + -0xb0;
    pEVar27 = (Elf32_Ehdr *)(puVar9 + iVar8 + -0x98);
  }
  else {
    pcVar51 = *(code **)(pcVar51 + 0x66c28);
    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;
    pEVar27 = (Elf32_Ehdr *)(*pcVar51)(puVar9 + -0x88,pEVar10);
    pcVar46 = *(code **)(puVar9 + -0x98);
    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);
  }
  uVar6 = (int)((int)pEVar16 + (1 - (int)pEVar40)) * 4;
  pcVar51 = *(code **)(pcVar46 + -0x7d50);
  if (uVar6 < 0x7f01) {
    iVar8 = -(uVar6 + 7 & 0xfffffff8);
    puVar49 = puVar36 + iVar8 + 0x18;
    puVar36 = puVar36 + iVar8;
  }
  else {
    *(Elf32_Ehdr **)(puVar9 + -0x8c) = pEVar30;
    puVar49 = (undefined1 *)(*pcVar51)(puVar9 + -0x88);
    pEVar30 = *(Elf32_Ehdr **)(puVar9 + -0x8c);
  }
  if (pEVar16 != (Elf32_Ehdr *)0x0) {
    puVar20 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
    uVar44._0_1_ = pEVar7->e_ident_magic_num;
    uVar44._1_1_ = pEVar7->e_ident_magic_str[0];
    uVar44._2_1_ = pEVar7->e_ident_magic_str[1];
    uVar44._3_1_ = pEVar7->e_ident_magic_str[2];
    pEVar41 = pEVar27;
    pEVar28 = pEVar7;
    if (puVar20 == (undefined1 *)0x0) {
      pEVar27->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
      pEVar27->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
      pEVar27->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
      pEVar27->e_ident_magic_str[2] = (char)uVar44;
      pEVar10 = pEVar27;
    }
    else {
      do {
        pEVar41->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
        pEVar41->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
        pEVar41->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
        pEVar41->e_ident_magic_str[2] = (char)uVar44;
        puVar20 = puVar20 + -1;
        uVar44._0_1_ = pEVar28->e_ident_class;
        uVar44._1_1_ = pEVar28->e_ident_data;
        uVar44._2_1_ = pEVar28->e_ident_version;
        uVar44._3_1_ = pEVar28->e_ident_osabi;
        pEVar41 = (Elf32_Ehdr *)&pEVar41->e_ident_class;
        pEVar28 = (Elf32_Ehdr *)&pEVar28->e_ident_class;
      } while (puVar20 != (undefined1 *)0x0);
      pEVar10 = (Elf32_Ehdr *)
                ((undefined1 *)((int)&pEVar10[-1].e_shentsize + 1) + (int)pEVar27->e_ident_magic_str
                );
      pEVar10->e_ident_magic_num = (char)((uint)uVar44 >> 0x18);
      pEVar10->e_ident_magic_str[0] = (char)((uint)uVar44 >> 0x10);
      pEVar10->e_ident_magic_str[1] = (char)((uint)uVar44 >> 8);
      pEVar10->e_ident_magic_str[2] = (char)uVar44;
    }
  }
  *(undefined1 **)(puVar36 + 0x14) = puVar49;
  *(Elf32_Ehdr **)(puVar36 + 0x10) = pEVar5;
  pEVar28 = pEVar16;
  pEVar34 = pEVar40;
  FUN_00030430(pEVar27);
  iVar8 = *(int *)(puVar9 + -0x98);
  pEVar41 = pEVar40;
  if (pEVar40 != (Elf32_Ehdr *)0x0) {
    puVar49 = (undefined1 *)((int)&pEVar40[-1].e_shstrndx + 1);
    pEVar28 = *(Elf32_Ehdr **)pEVar27;
    pEVar21 = pEVar24;
    pEVar3 = pEVar27;
    if (puVar49 != (undefined1 *)0x0) {
      do {
        *(Elf32_Ehdr **)pEVar21 = pEVar28;
        puVar49 = puVar49 + -1;
        pEVar28 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;
        pEVar21 = (Elf32_Ehdr *)&pEVar21->e_ident_class;
        pEVar3 = (Elf32_Ehdr *)&pEVar3->e_ident_class;
      } while (puVar49 != (undefined1 *)0x0);
      pEVar41 = (Elf32_Ehdr *)((int)pEVar40 * 4 + -4);
      pEVar24 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + (int)&pEVar40[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar24 = pEVar28;
  }
  piVar39 = *(int **)(puVar9 + -0x88);
  if (piVar39 != (int *)0x0) {
    (**(code **)(iVar8 + -0x7a2c))();
    iVar8 = *(int *)(puVar9 + -0x98);
  }
  iVar50._0_1_ = pEVar42->e_ident_magic_num;
  iVar50._1_1_ = pEVar42->e_ident_magic_str[0];
  iVar50._2_1_ = pEVar42->e_ident_magic_str[1];
  iVar50._3_1_ = pEVar42->e_ident_magic_str[2];
  if (*(int *)(puVar9 + -0x84) == iVar50) {
    return iVar50;
  }
  pcVar46 = *(code **)(iVar8 + -0x7b70);
  pcVar52 = __gmpz_powm_ui;
  (*pcVar46)();
  pcVar51 = pcVar46 + 0x6e770;
  puVar35 = *(undefined4 **)(pcVar46 + 0x66c70);
  puVar20 = puVar36 + -0xa0;
  puVar49 = puVar36 + -0xa0;
  puVar48 = puVar36 + -0xa0;
  *(undefined1 **)(puVar36 + -8) = puVar9 + -0xb0;
  *(Elf32_Ehdr **)(puVar36 + -0x20) = pEVar7;
  *(code **)(puVar36 + -4) = pcVar52;
  *(undefined4 **)(puVar36 + -0x58) = puVar35;
  *(Elf32_Ehdr **)(puVar36 + -0xc) = pEVar5;
  *(Elf32_Ehdr **)(puVar36 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar36 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar36 + -0x18) = pEVar42;
  *(Elf32_Ehdr **)(puVar36 + -0x1c) = pEVar41;
  *(Elf32_Ehdr **)(puVar36 + -0x24) = pEVar27;
  *(Elf32_Ehdr **)(puVar36 + -0x28) = pEVar24;
  *(code **)(puVar36 + -0x88) = pcVar51;
  *(int **)(puVar36 + -0x54) = piVar39;
  *(Elf32_Ehdr **)(puVar36 + -0x5c) = pEVar28;
  *(Elf32_Ehdr **)(puVar36 + -0x68) = pEVar34;
  *(undefined4 *)(puVar36 + -0x2c) = *puVar35;
  pEVar40 = pEVar30;
  if (pEVar30 < (Elf32_Ehdr *)0x14) {
    pEVar7 = *(Elf32_Ehdr **)&pEVar34->e_ident_class;
    *(undefined4 *)(puVar36 + -0x4c) = *(undefined4 *)&pEVar34->e_ident_abiversion;
    pEVar10 = pEVar7;
    if ((int)pEVar7 < 0) {
      pEVar10 = (Elf32_Ehdr *)-(int)pEVar7;
    }
    *(Elf32_Ehdr **)(puVar36 + -0x78) = pEVar10;
    if (pEVar7 == (Elf32_Ehdr *)0x0) {
      pEVar7 = pEVar30;
      uVar56 = (**(code **)(pcVar46 + 0x66d0c))();
LAB_00031228:
      uVar6 = (uint)uVar56;
      pEVar42 = (Elf32_Ehdr *)(pEVar28->e_ident_magic_str + (int)((ulonglong)uVar56 >> 0x20) + -1);
      puVar49 = puVar20;
    }
    else {
      pEVar27 = (Elf32_Ehdr *)((int)pEVar10 * 4);
      if (pEVar30 == (Elf32_Ehdr *)0x0) {
        uVar6 = 1;
        if (pEVar10 == (Elf32_Ehdr *)0x1) {
          uVar6 = (uint)(**(int **)(puVar36 + -0x4c) != 1);
        }
        piVar39 = *(int **)(puVar36 + -0x54);
        piVar39[1] = uVar6;
        *(undefined4 *)piVar39[2] = 1;
        puVar49 = puVar36 + -0xa0;
        goto LAB_00030c64;
      }
      *(undefined4 *)(puVar36 + -0x40) = 0;
      *(word **)(puVar36 + -0x50) = &pEVar27[-1].e_shnum;
      pEVar28 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + (int)&pEVar27[-1].e_shnum);
      if (pEVar28 < &Elf32_Ehdr_00010000) {
        iVar8 = 0x20;
        if ((Elf32_Ehdr *)0xff < pEVar28) {
          iVar8 = 0x18;
        }
        iVar37 = 9;
        if ((Elf32_Ehdr *)0xff >= pEVar28) {
          iVar37 = 1;
        }
      }
      else {
        iVar8 = 0x10;
        if ((Elf32_Ehdr *)0xffffff < pEVar28) {
          iVar8 = 8;
        }
        iVar37 = 0x19;
        if ((Elf32_Ehdr *)0xffffff >= pEVar28) {
          iVar37 = 0x11;
        }
      }
      pEVar24 = *(Elf32_Ehdr **)(pcVar46 + 0x668bc);
      iVar8 = iVar8 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar28 >> iVar37) - 1];
      *(int *)(puVar36 + -0x6c) = iVar8;
      puVar20 = puVar36 + -0xa0;
      if (iVar8 != 0) {
        if (*(int *)(puVar36 + -0x50) + 4U < 0x7f01) {
          iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);
          puVar48 = puVar36 + iVar8 + -0xa0;
          pEVar27 = (Elf32_Ehdr *)(puVar36 + iVar8 + -0x88);
        }
        else {
          pEVar27 = (Elf32_Ehdr *)(**(code **)(pcVar46 + 0x66a20))(puVar36 + -0x40);
          pcVar51 = *(code **)(puVar36 + -0x88);
        }
        (**(code **)(pcVar51 + -0x7ad4))
                  (pEVar27,*(undefined4 *)(puVar36 + -0x4c),pEVar10,*(undefined4 *)(puVar36 + -0x6c)
                  );
        pcVar51 = *(code **)(puVar36 + -0x88);
        *(Elf32_Ehdr **)(puVar36 + -0x4c) = pEVar27;
        pEVar28 = *(Elf32_Ehdr **)(pEVar27->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1);
        puVar20 = puVar48;
      }
      if (pEVar10 == (Elf32_Ehdr *)0x1) {
        pEVar34 = (Elf32_Ehdr *)0x0;
      }
      else {
        pEVar34 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x4c) + *(int *)(puVar36 + -0x50) + -4);
      }
      pEVar7 = (Elf32_Ehdr *)((uint)pEVar28 >> 0x10);
      if (pEVar7 == (Elf32_Ehdr *)0x0) {
        trap(7);
      }
      uVar54 = ~(uint)pEVar28 / (uint)pEVar7;
      in_t2 = (char *)((uint)pEVar28 & 0xffff);
      in_t3 = (Elf32_Ehdr *)((int)in_t2 * uVar54);
      pEVar42 = (Elf32_Ehdr *)(~(uint)pEVar28 % (uint)pEVar7 << 0x10 | 0xffff);
      uVar6 = uVar54;
      in_t1 = pEVar34;
      puVar49 = puVar20;
      if (pEVar42 < in_t3) {
        pEVar42 = (Elf32_Ehdr *)
                  (pEVar28->e_ident_magic_str + (int)(pEVar42->e_ident_magic_str + -2));
        uVar6 = uVar54 - 1;
        if ((pEVar28 <= pEVar42) && (uVar56 = CONCAT44(pEVar42,uVar54 - 2), pEVar42 < in_t3))
        goto LAB_00031228;
      }
    }
    if (pEVar7 == (Elf32_Ehdr *)0x0) {
      trap(7);
    }
    uVar55 = (uint)((int)pEVar42 - (int)in_t3) / (uint)pEVar7;
    pEVar7 = (Elf32_Ehdr *)((uint)((int)pEVar42 - (int)in_t3) % (uint)pEVar7 << 0x10 | 0xffff);
    pEVar42 = (Elf32_Ehdr *)(pEVar7->e_ident_magic_str + (int)(pEVar28->e_ident_magic_str + -2));
    uVar54 = uVar55;
    if ((pEVar7 < (Elf32_Ehdr *)((int)in_t2 * uVar55)) &&
       ((pEVar42 < pEVar28 || (uVar54 = uVar55 - 2, (Elf32_Ehdr *)((int)in_t2 * uVar55) <= pEVar42))
       )) {
      uVar54 = uVar55 - 1;
    }
    uVar54 = uVar6 << 0x10 | uVar54;
    pEVar7 = (Elf32_Ehdr *)(pEVar34->e_ident_magic_str + (int)pEVar28 * uVar54 + -1);
    lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    if (pEVar7 < pEVar34) {
      uVar6 = pEVar7 < pEVar28 ^ 1;
      pEVar42 = pEVar28;
      if (uVar6 == 0) {
        pEVar42 = (Elf32_Ehdr *)0x0;
      }
      uVar54 = (uVar54 - 1) - uVar6;
      pEVar7 = (Elf32_Ehdr *)((int)pEVar7 + (-(int)pEVar42 - (int)pEVar28));
      lVar2 = (ulonglong)uVar54 * ZEXT48(in_t1);
    }
    pEVar42 = (Elf32_Ehdr *)((ulonglong)lVar2 >> 0x20);
    pEVar7 = (Elf32_Ehdr *)(pEVar42->e_ident_magic_str + (int)(pEVar7->e_ident_magic_str + -2));
    uVar6 = uVar54;
    if (((pEVar7 < pEVar42) && (uVar6 = uVar54 - 1, pEVar28 <= pEVar7)) &&
       ((pEVar28 = (Elf32_Ehdr *)(uint)(pEVar28 < pEVar7), pEVar28 != (Elf32_Ehdr *)0x0 ||
        (pEVar34 <= (Elf32_Ehdr *)lVar2)))) {
      uVar6 = uVar54 - 2;
    }
    *(uint *)(puVar36 + -0x44) = uVar6;
    pEVar7 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 4);
    pEVar41 = pEVar7;
    if ((int)pEVar7 < 0) {
      pEVar41 = (Elf32_Ehdr *)-(int)pEVar7;
    }
    pEVar42 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x5c) + 8);
    if ((int)pEVar41 <= (int)pEVar10) {
      if (pEVar7 != (Elf32_Ehdr *)0x0) {
        *(Elf32_Ehdr **)(puVar36 + -100) = pEVar42;
        *(uint *)(puVar36 + -0x70) = *(int *)(puVar36 + -0x50) + 4U;
        pEVar27 = (Elf32_Ehdr *)(uint)(*(int *)(puVar36 + -0x50) + 4U < 0x7f01);
        goto LAB_00030cf8;
      }
LAB_00030bf4:
      piVar39 = *(int **)(puVar36 + -0x40);
      *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;
      if (piVar39 == (int *)0x0) goto LAB_00030c64;
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
LAB_00030c08:
      (*pcVar51)();
      pcVar51 = *(code **)(puVar36 + -0x88);
      goto LAB_00030c64;
    }
    uVar6 = *(int *)(puVar36 + -0x50) + 4;
    pEVar27 = (Elf32_Ehdr *)(uint)(uVar6 < 0x7f01);
    *(uint *)(puVar36 + -0x70) = uVar6;
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7d50);
      *(Elf32_Ehdr **)(puVar36 + -0x60) = pEVar41;
      uVar44 = (*pcVar51)(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));
      pEVar41 = *(Elf32_Ehdr **)(puVar36 + -0x60);
      *(undefined4 *)(puVar36 + -100) = uVar44;
    }
    else {
      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xbU & 0xfffffff8);
      *(undefined1 **)(puVar36 + -100) = puVar49 + iVar8 + 0x18;
      puVar49 = puVar49 + iVar8;
    }
    iVar8 = *(int *)(puVar36 + -100);
    uVar44 = *(undefined4 *)(puVar36 + -0x4c);
    *(undefined1 **)(puVar49 + 0x14) = puVar36 + -0x44;
    *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar10;
    pEVar28 = pEVar42;
    FUN_000306c8(iVar8,pEVar42,pEVar41,uVar44);
    pcVar51 = *(code **)(puVar36 + -0x88);
    pEVar41 = pEVar10;
    if (*(int *)(iVar8 + *(int *)(puVar36 + -0x50)) == 0) {
      iVar8 = iVar8 + *(int *)(puVar36 + -0x70);
      do {
        pEVar41 = (Elf32_Ehdr *)((int)&pEVar41[-1].e_shstrndx + 1);
        if (pEVar41 == (Elf32_Ehdr *)0x0) goto LAB_00030bf4;
        piVar39 = (int *)(iVar8 + -8);
        pEVar28 = (Elf32_Ehdr *)((int)pEVar10 << 3);
        iVar8 = iVar8 + -4;
      } while (*piVar39 == 0);
    }
LAB_00030cf8:
    if ((int)pEVar10 * 8 + 4U < 0x7f01) {
      iVar8 = -((int)pEVar10 * 8 + 8);
      pEVar42 = (Elf32_Ehdr *)(puVar49 + iVar8 + 0x18);
      puVar49 = puVar49 + iVar8;
    }
    else {
      pEVar42 = (Elf32_Ehdr *)(**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);
      pcVar51 = *(code **)(puVar36 + -0x88);
    }
    if (pEVar27 == (Elf32_Ehdr *)0x0) {
      pEVar5 = (Elf32_Ehdr *)
               (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40,*(undefined4 *)(puVar36 + -0x70));
      pcVar51 = *(code **)(puVar36 + -0x88);
    }
    else {
      pEVar5 = (Elf32_Ehdr *)(puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8) + 0x18);
      puVar49 = puVar49 + -(*(int *)(puVar36 + -0x70) + 7U & 0xfffffff8);
    }
    if (*(int *)(puVar36 + -0x50) + 8U < 0x7f01) {
      iVar8 = -(*(int *)(puVar36 + -0x50) + 0xfU & 0xfffffff8);
      *(undefined1 **)(puVar36 + -0x74) = puVar49 + iVar8 + 0x18;
      puVar49 = puVar49 + iVar8;
    }
    else {
      uVar44 = (**(code **)(pcVar51 + -0x7d50))(puVar36 + -0x40);
      pcVar51 = *(code **)(puVar36 + -0x88);
      *(undefined4 *)(puVar36 + -0x74) = uVar44;
    }
    puVar35 = *(undefined4 **)(puVar36 + -100);
    puVar20 = (undefined1 *)((int)&pEVar41[-1].e_shstrndx + 1);
    pEVar28 = (Elf32_Ehdr *)*puVar35;
    pEVar40 = pEVar5;
    puVar9 = puVar20;
    if (puVar20 != (undefined1 *)0x0) {
      do {
        puVar35 = puVar35 + 1;
        *(Elf32_Ehdr **)pEVar40 = pEVar28;
        puVar9 = puVar9 + -1;
        pEVar28 = (Elf32_Ehdr *)*puVar35;
        pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
      } while (puVar9 != (undefined1 *)0x0);
      pEVar40 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar41[-1].e_shstrndx * 4 + 3);
    }
    *(Elf32_Ehdr **)pEVar40 = pEVar28;
    pEVar24 = (Elf32_Ehdr *)
              (0x20 - (uint)(byte)pEVar24->e_ident_magic_str[((uint)pEVar30 >> 1) - 1]);
    iVar8 = 0x1f - (int)pEVar24;
    pEVar16 = pEVar41;
    if (iVar8 == 0) {
      if (pEVar10 == pEVar41) {
        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar10 * 4 + -1);
        iVar8 = *(int *)(puVar36 + -0x4c) + (int)pEVar10 * 4;
        do {
          pEVar28 = *(Elf32_Ehdr **)(iVar8 + -4);
          puVar20 = puVar20 + -1;
          if (*(Elf32_Ehdr **)(pbVar14 + -4) != pEVar28) {
            pcVar46 = *(code **)(pcVar51 + -0x7b2c);
            if (pEVar28 < *(Elf32_Ehdr **)(pbVar14 + -4)) goto LAB_00031264;
            goto LAB_00030dd0;
          }
          pbVar14 = pbVar14 + -4;
          iVar8 = iVar8 + -4;
        } while (puVar20 != (undefined1 *)0xffffffff);
        pcVar46 = *(code **)(pcVar51 + -0x7b2c);
LAB_00031264:
        pEVar28 = pEVar5;
        (*pcVar46)(pEVar5,pEVar5,*(undefined4 *)(puVar36 + -0x4c),pEVar41);
        pcVar51 = *(code **)(puVar36 + -0x88);
      }
    }
    else {
      *(Elf32_Ehdr **)(puVar36 + 8) = pEVar30;
      pEVar24 = (Elf32_Ehdr *)(((int)pEVar30 << ((uint)pEVar24 & 0x1f)) << 1);
      *(char **)(puVar36 + -0x80) = pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1;
      *(int *)(puVar36 + -0x7c) = *(int *)(pcVar51 + -0x7fcc) + 0x430;
      *(undefined4 *)(puVar36 + -0x60) = 0x3fffffff;
      do {
        pEVar28 = pEVar5;
        (**(code **)(pcVar51 + -0x7cac))(pEVar42,pEVar5,pEVar16);
        pEVar16 = (Elf32_Ehdr *)
                  ((int)pEVar16 * 2 -
                  (uint)(*(int *)(pEVar42->e_ident_magic_str +
                                 ((int)pEVar16 * 2 + *(int *)(puVar36 + -0x60)) * 4 + -1) == 0));
        pcVar51 = *(code **)(puVar36 + -0x88);
        if ((int)pEVar16 < (int)pEVar10) {
          puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 != (Elf32_Ehdr *)0x0) {
            uVar32._0_1_ = pEVar42->e_ident_magic_num;
            uVar32._1_1_ = pEVar42->e_ident_magic_str[0];
            uVar32._2_1_ = pEVar42->e_ident_magic_str[1];
            uVar32._3_1_ = pEVar42->e_ident_magic_str[2];
            pEVar40 = pEVar5;
            if (puVar9 != (undefined1 *)0x0) {
              pbVar14 = &pEVar42->e_ident_class;
              do {
                pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);
                pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);
                pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);
                pEVar40->e_ident_magic_str[2] = (char)uVar32;
                pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);
                puVar9 = puVar9 + -1;
                uVar32 = *(undefined4 *)pbVar14;
                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
                pbVar14 = (byte *)pEVar28;
              } while (puVar9 != (undefined1 *)0x0);
              pEVar40 = (Elf32_Ehdr *)
                        (pEVar5->e_ident_magic_str +
                        (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5);
            }
            pEVar40->e_ident_magic_num = (char)((uint)uVar32 >> 0x18);
            pEVar40->e_ident_magic_str[0] = (char)((uint)uVar32 >> 0x10);
            pEVar40->e_ident_magic_str[1] = (char)((uint)uVar32 >> 8);
            pEVar40->e_ident_magic_str[2] = (char)uVar32;
          }
          pcVar46 = *(code **)(pcVar51 + -0x7d8c);
        }
        else {
          uVar44 = *(undefined4 *)(puVar36 + -0x4c);
          pcVar51 = *(code **)(puVar36 + -0x7c);
          *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
          *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
          (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);
          puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
          pcVar51 = *(code **)(puVar36 + -0x88);
          uVar22._0_1_ = pEVar42->e_ident_magic_num;
          uVar22._1_1_ = pEVar42->e_ident_magic_str[0];
          uVar22._2_1_ = pEVar42->e_ident_magic_str[1];
          uVar22._3_1_ = pEVar42->e_ident_magic_str[2];
          if (puVar9 == (undefined1 *)0x0) {
            pEVar5->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
            pEVar5->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
            pEVar5->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
            pEVar5->e_ident_magic_str[2] = (char)uVar22;
          }
          else {
            pEVar40 = pEVar5;
            pbVar14 = &pEVar42->e_ident_class;
            do {
              pEVar40->e_ident_magic_num = (char)((uint)uVar22 >> 0x18);
              pEVar40->e_ident_magic_str[0] = (char)((uint)uVar22 >> 0x10);
              pEVar40->e_ident_magic_str[1] = (char)((uint)uVar22 >> 8);
              pEVar40->e_ident_magic_str[2] = (char)uVar22;
              pEVar16 = (Elf32_Ehdr *)(pbVar14 + 4);
              puVar9 = puVar9 + -1;
              uVar22 = *(undefined4 *)pbVar14;
              pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
              pbVar14 = (byte *)pEVar16;
            } while (puVar9 != (undefined1 *)0x0);
            **(undefined4 **)(puVar36 + -0x80) = uVar22;
          }
          pcVar46 = *(code **)(pcVar51 + -0x7d8c);
          pEVar28 = pEVar16;
          pEVar16 = pEVar10;
        }
        if ((int)pEVar24 < 0) {
          uVar44 = *(undefined4 *)(puVar36 + -100);
          *(Elf32_Ehdr **)(puVar49 + 0x10) = pEVar41;
          pEVar28 = pEVar5;
          (*pcVar46)(pEVar42,pEVar5,pEVar16,uVar44);
          pEVar16 = (Elf32_Ehdr *)
                    (pEVar16->e_ident_magic_str +
                     (-1 - (uint)(*(int *)(pEVar42->e_ident_magic_str +
                                          (int)pEVar41->e_ident_magic_str * 4 +
                                          *(int *)(puVar36 + -0x60) * 4 +
                                          (int)pEVar16->e_ident_magic_str * 4 + -9) == 0)) +
                    (int)(pEVar41->e_ident_magic_str + -1));
          pcVar51 = *(code **)(puVar36 + -0x88);
          if ((int)pEVar16 < (int)pEVar10) {
            puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
            if (pEVar16 != (Elf32_Ehdr *)0x0) {
              uVar33._0_1_ = pEVar42->e_ident_magic_num;
              uVar33._1_1_ = pEVar42->e_ident_magic_str[0];
              uVar33._2_1_ = pEVar42->e_ident_magic_str[1];
              uVar33._3_1_ = pEVar42->e_ident_magic_str[2];
              if (puVar9 == (undefined1 *)0x0) {
                pEVar5->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);
                pEVar5->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);
                pEVar5->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);
                pEVar5->e_ident_magic_str[2] = (char)uVar33;
              }
              else {
                pEVar40 = pEVar5;
                pbVar14 = &pEVar42->e_ident_class;
                do {
                  pEVar40->e_ident_magic_num = (char)((uint)uVar33 >> 0x18);
                  pEVar40->e_ident_magic_str[0] = (char)((uint)uVar33 >> 0x10);
                  pEVar40->e_ident_magic_str[1] = (char)((uint)uVar33 >> 8);
                  pEVar40->e_ident_magic_str[2] = (char)uVar33;
                  pEVar28 = (Elf32_Ehdr *)(pbVar14 + 4);
                  puVar9 = puVar9 + -1;
                  uVar33 = *(undefined4 *)pbVar14;
                  pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
                  pbVar14 = (byte *)pEVar28;
                } while (puVar9 != (undefined1 *)0x0);
                *(undefined4 *)
                 (pEVar5->e_ident_magic_str +
                 (int)pEVar16->e_ident_magic_str * 4 + *(int *)(puVar36 + -0x60) * 4 + -5) = uVar33;
              }
            }
          }
          else {
            uVar44 = *(undefined4 *)(puVar36 + -0x4c);
            pcVar51 = *(code **)(puVar36 + -0x7c);
            *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
            *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
            (*pcVar51)(pEVar42,pEVar16,uVar44,pEVar10);
            puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
            pcVar51 = *(code **)(puVar36 + -0x88);
            pEVar28 = *(Elf32_Ehdr **)pEVar42;
            pEVar27 = pEVar5;
            pEVar40 = pEVar42;
            if (puVar9 == (undefined1 *)0x0) {
              *(Elf32_Ehdr **)pEVar5 = pEVar28;
              pEVar16 = pEVar10;
            }
            else {
              do {
                *(Elf32_Ehdr **)pEVar27 = pEVar28;
                puVar9 = puVar9 + -1;
                pEVar28 = *(Elf32_Ehdr **)&pEVar40->e_ident_class;
                pEVar27 = (Elf32_Ehdr *)&pEVar27->e_ident_class;
                pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
              } while (puVar9 != (undefined1 *)0x0);
              **(undefined4 **)(puVar36 + -0x80) = pEVar28;
              pEVar16 = pEVar10;
            }
          }
        }
        iVar8 = iVar8 + -1;
        pEVar24 = (Elf32_Ehdr *)((int)pEVar24 << 1);
      } while (iVar8 != 0);
      pEVar30 = *(Elf32_Ehdr **)(puVar36 + 8);
    }
LAB_00030dd0:
    pEVar27 = (Elf32_Ehdr *)0x0;
    pEVar40 = *(Elf32_Ehdr **)(puVar36 + -0x6c);
    if (pEVar40 == (Elf32_Ehdr *)0x0) {
LAB_00030ddc:
      if ((0 < (int)pEVar16) &&
         (*(int *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3) == 0)) {
        pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
        do {
          pEVar16 = (Elf32_Ehdr *)((int)&pEVar16[-1].e_shstrndx + 1);
          if (pEVar16 == (Elf32_Ehdr *)0x0) {
            pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
            piVar39 = *(int **)(puVar36 + -0x54);
            if ((pEVar40 == (Elf32_Ehdr *)0x0) ||
               (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4)))
            goto LAB_00030e34;
            goto LAB_00030f08;
          }
          pcVar18 = (char *)(pbVar14 + -8);
          pbVar14 = pbVar14 + -4;
        } while (*(int *)pcVar18 == 0);
      }
      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
      piVar39 = *(int **)(puVar36 + -0x54);
      if ((pEVar40 == (Elf32_Ehdr *)0x0) ||
         (piVar39 = *(int **)(puVar36 + -0x54), -1 < *(int *)(*(int *)(puVar36 + -0x5c) + 4))) {
LAB_00030e34:
        pcVar46 = *(code **)(pcVar51 + -0x7a84);
        if (*piVar39 < (int)pEVar16) goto LAB_00031474;
LAB_00030e44:
        pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030e94;
      }
      else {
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030f04;
        pEVar24 = *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x68) + 8);
        pEVar28 = pEVar24;
        iVar8 = (**(code **)(pcVar51 + -0x7b2c))(pEVar5,pEVar24,pEVar5,pEVar16);
        pcVar51 = *(code **)(puVar36 + -0x88);
        if (iVar8 == 0) {
LAB_000314a0:
          if ((pEVar5 == pEVar24) || ((int)pEVar10 <= (int)pEVar16)) goto LAB_00031130;
          pEVar28 = (Elf32_Ehdr *)(pEVar24->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);
          pbVar15 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);
          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
          do {
            uVar44 = *(undefined4 *)pbVar15;
            pbVar15 = pbVar15 + 4;
            *(undefined4 *)pbVar14 = uVar44;
            pbVar14 = pbVar14 + 4;
          } while (pEVar28 != (Elf32_Ehdr *)pbVar15);
          iVar8 = *(int *)(puVar36 + -0x50);
        }
        else {
          if ((int)pEVar16 < (int)pEVar10) {
            pbVar14 = (byte *)(pEVar24->e_ident_magic_str + (int)pEVar16 * 4 + -1);
            pbVar15 = (byte *)(pEVar5->e_ident_magic_str + (int)pEVar16 * 4 + -1);
            pEVar28 = *(Elf32_Ehdr **)pbVar14;
            *(undefined1 **)pbVar15 = (undefined1 *)((int)&pEVar28[-1].e_shstrndx + 1);
            pEVar27 = pEVar28;
            while (pEVar16 = (Elf32_Ehdr *)pEVar16->e_ident_magic_str, pEVar27 == (Elf32_Ehdr *)0x0)
            {
              pbVar15 = pbVar15 + 4;
              if (pEVar10 == pEVar16) goto LAB_00031130;
              pEVar27 = *(Elf32_Ehdr **)(pbVar14 + 4);
              pbVar14 = pbVar14 + 4;
              pEVar28 = (Elf32_Ehdr *)((int)&pEVar27[-1].e_shstrndx + 1);
              *(Elf32_Ehdr **)pbVar15 = pEVar28;
            }
            goto LAB_000314a0;
          }
LAB_00031130:
          iVar8 = *(int *)(puVar36 + -0x50);
        }
        pEVar27 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + iVar8 + -1);
        iVar13._0_1_ = pEVar27->e_ident_magic_num;
        iVar13._1_1_ = pEVar27->e_ident_magic_str[0];
        iVar13._2_1_ = pEVar27->e_ident_magic_str[1];
        iVar13._3_1_ = pEVar27->e_ident_magic_str[2];
        if (iVar13 == 0) {
          iVar8 = *(int *)(puVar36 + -0x78);
          pbVar14 = (byte *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x70) + -1);
          do {
            iVar8 = iVar8 + -1;
            if (iVar8 == 0) {
              piVar39 = *(int **)(puVar36 + -0x54);
              goto LAB_00030f08;
            }
            pcVar18 = (char *)(pbVar14 + -8);
            pbVar14 = pbVar14 + -4;
          } while (*(int *)pcVar18 == 0);
          *(int *)(puVar36 + -0x78) = iVar8;
        }
        if (**(int **)(puVar36 + -0x54) < *(int *)(puVar36 + -0x78)) {
          pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);
          pcVar46 = *(code **)(pcVar51 + -0x7a84);
LAB_00031474:
          pEVar28 = pEVar16;
          (*pcVar46)(*(undefined4 *)(puVar36 + -0x54));
          pcVar51 = *(code **)(puVar36 + -0x88);
          goto LAB_00030e44;
        }
        pEVar16 = *(Elf32_Ehdr **)(puVar36 + -0x78);
        *(Elf32_Ehdr **)(*(int *)(puVar36 + -0x54) + 4) = pEVar16;
      }
      pEVar40 = (Elf32_Ehdr *)((uint)pEVar30 & 1);
      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
      pEVar28 = *(Elf32_Ehdr **)pEVar5;
      puVar31 = *(undefined4 **)(*(int *)(puVar36 + -0x54) + 8);
      puVar35 = puVar31;
      pEVar30 = pEVar5;
      if (puVar9 != (undefined1 *)0x0) {
        do {
          *puVar35 = pEVar28;
          puVar9 = puVar9 + -1;
          pEVar28 = *(Elf32_Ehdr **)&pEVar30->e_ident_class;
          puVar35 = puVar35 + 1;
          pEVar30 = (Elf32_Ehdr *)&pEVar30->e_ident_class;
        } while (puVar9 != (undefined1 *)0x0);
        puVar31 = puVar31 + (int)((int)&pEVar16[-1].e_shstrndx + 1);
      }
      *puVar31 = pEVar28;
    }
    else {
      iVar37 = (**(code **)(pcVar51 + -0x7ad4))(pEVar42,pEVar5,pEVar16,pEVar40);
      iVar26 = *(int *)(puVar36 + -0x88);
      iVar8 = (int)pEVar16 * 4;
      pEVar16 = (Elf32_Ehdr *)(pEVar16->e_ident_magic_str + ((iVar37 != 0) - 1));
      *(int *)(pEVar42->e_ident_magic_str + iVar8 + -1) = iVar37;
      pEVar24 = pEVar40;
      if ((int)pEVar10 <= (int)pEVar16) {
        uVar44 = *(undefined4 *)(puVar36 + -0x4c);
        *(undefined4 *)(puVar49 + 0x14) = *(undefined4 *)(puVar36 + -0x74);
        *(undefined1 **)(puVar49 + 0x10) = puVar36 + -0x44;
        FUN_00030430(pEVar42,pEVar16,uVar44,pEVar10);
        puVar9 = (undefined1 *)((int)&pEVar10[-1].e_shstrndx + 1);
        iVar26 = *(int *)(puVar36 + -0x88);
        uVar25._0_1_ = pEVar42->e_ident_magic_num;
        uVar25._1_1_ = pEVar42->e_ident_magic_str[0];
        uVar25._2_1_ = pEVar42->e_ident_magic_str[1];
        uVar25._3_1_ = pEVar42->e_ident_magic_str[2];
        pEVar16 = pEVar5;
        pEVar40 = pEVar42;
        if (puVar9 == (undefined1 *)0x0) {
          pEVar5->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
          pEVar5->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
          pEVar5->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
          pEVar5->e_ident_magic_str[2] = (char)uVar25;
          pEVar16 = pEVar10;
        }
        else {
          do {
            pEVar16->e_ident_magic_num = (char)((uint)uVar25 >> 0x18);
            pEVar16->e_ident_magic_str[0] = (char)((uint)uVar25 >> 0x10);
            pEVar16->e_ident_magic_str[1] = (char)((uint)uVar25 >> 8);
            pEVar16->e_ident_magic_str[2] = (char)uVar25;
            puVar9 = puVar9 + -1;
            uVar25._0_1_ = pEVar40->e_ident_class;
            uVar25._1_1_ = pEVar40->e_ident_data;
            uVar25._2_1_ = pEVar40->e_ident_version;
            uVar25._3_1_ = pEVar40->e_ident_osabi;
            pEVar16 = (Elf32_Ehdr *)&pEVar16->e_ident_class;
            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
          } while (puVar9 != (undefined1 *)0x0);
          *(undefined4 *)(pEVar5->e_ident_magic_str + *(int *)(puVar36 + -0x50) + -1) = uVar25;
          pEVar16 = pEVar10;
        }
LAB_000312bc:
        pEVar28 = pEVar5;
        (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,pEVar16,*(undefined4 *)(puVar36 + -0x6c));
        pcVar51 = *(code **)(puVar36 + -0x88);
        goto LAB_00030ddc;
      }
      puVar9 = (undefined1 *)((int)&pEVar16[-1].e_shstrndx + 1);
      if (pEVar16 != (Elf32_Ehdr *)0x0) {
        uVar29._0_1_ = pEVar42->e_ident_magic_num;
        uVar29._1_1_ = pEVar42->e_ident_magic_str[0];
        uVar29._2_1_ = pEVar42->e_ident_magic_str[1];
        uVar29._3_1_ = pEVar42->e_ident_magic_str[2];
        pEVar7 = pEVar5;
        pEVar40 = pEVar42;
        if (puVar9 != (undefined1 *)0x0) {
          do {
            pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
            pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
            pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
            pEVar7->e_ident_magic_str[2] = (char)uVar29;
            puVar9 = puVar9 + -1;
            uVar29._0_1_ = pEVar40->e_ident_class;
            uVar29._1_1_ = pEVar40->e_ident_data;
            uVar29._2_1_ = pEVar40->e_ident_version;
            uVar29._3_1_ = pEVar40->e_ident_osabi;
            pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;
            pEVar40 = (Elf32_Ehdr *)&pEVar40->e_ident_class;
          } while (puVar9 != (undefined1 *)0x0);
          pEVar7 = (Elf32_Ehdr *)(pEVar5->e_ident_magic_str + (int)&pEVar16[-1].e_shstrndx * 4 + 3);
        }
        pEVar7->e_ident_magic_num = (char)((uint)uVar29 >> 0x18);
        pEVar7->e_ident_magic_str[0] = (char)((uint)uVar29 >> 0x10);
        pEVar7->e_ident_magic_str[1] = (char)((uint)uVar29 >> 8);
        pEVar7->e_ident_magic_str[2] = (char)uVar29;
        goto LAB_000312bc;
      }
      pEVar28 = pEVar5;
      (**(code **)(iVar26 + -0x7ae0))(pEVar5,pEVar5,0,pEVar40);
      pcVar51 = *(code **)(puVar36 + -0x88);
      pEVar40 = pEVar30;
LAB_00030f04:
      piVar39 = *(int **)(puVar36 + -0x54);
LAB_00030f08:
      if (*piVar39 < 0) {
        pEVar24 = *(Elf32_Ehdr **)(puVar36 + -0x54);
        pEVar28 = (Elf32_Ehdr *)0x0;
        (**(code **)(pcVar51 + -0x7a84))(pEVar24);
        pcVar51 = *(code **)(puVar36 + -0x88);
        pEVar24->e_ident_class = 0;
        pEVar24->e_ident_data = 0;
        pEVar24->e_ident_version = 0;
        pEVar24->e_ident_osabi = 0;
      }
      else {
        *(undefined4 *)(*(int *)(puVar36 + -0x54) + 4) = 0;
      }
    }
LAB_00030e94:
    piVar39 = *(int **)(puVar36 + -0x40);
    piVar12 = *(int **)(puVar36 + -0x58);
    if (piVar39 != (int *)0x0) {
      pcVar51 = *(code **)(pcVar51 + -0x7a2c);
      goto LAB_00030c08;
    }
  }
  else {
    pcVar51 = *(code **)(pcVar46 + 0x66c10);
    *(Elf32_Ehdr **)(puVar36 + -0x3c) = pEVar30;
    *(undefined4 *)(puVar36 + -0x34) = 1;
    *(undefined1 **)(puVar36 + -0x30) = puVar36 + -0x3c;
    (*pcVar51)();
    pcVar51 = *(code **)(puVar36 + -0x88);
LAB_00030c64:
    piVar12 = *(int **)(puVar36 + -0x58);
  }
  if (*(int *)(puVar36 + -0x2c) == *piVar12) {
    return *piVar12;
  }
  pcVar51 = *(code **)(pcVar51 + -0x7b70);
  uVar44 = 0x3153c;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6db00;
  puVar9 = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar49 + -0x10) = pEVar40;
  piVar12 = *(int **)(pcVar51 + 0x66000);
  *(undefined1 **)(puVar49 + -8) = puVar36 + -0xa0;
  *(Elf32_Ehdr **)(puVar49 + -0x14) = pEVar27;
  *(Elf32_Ehdr **)(puVar49 + -0x18) = pEVar24;
  *(undefined4 *)(puVar49 + -4) = uVar44;
  *(Elf32_Ehdr **)(puVar49 + -0xc) = pEVar41;
  *(code **)(puVar49 + -0x28) = pcVar46;
  *(int *)(puVar49 + -0x1c) = *piVar12;
  if ((Elf32_Ehdr *)&DAT_00000004 < pEVar28) {
    if (*piVar39 < (int)(((uint)pEVar28 >> 5) + ((uint)pEVar28 >> 6) + 1)) {
      pEVar41 = (Elf32_Ehdr *)(**(code **)(pcVar51 + 0x6607c))();
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    else {
      pEVar41 = (Elf32_Ehdr *)piVar39[2];
    }
    iVar8 = (**(code **)(pcVar46 + -0x7efc))(pEVar41,pEVar28);
    pcVar46 = *(code **)(puVar49 + -0x28);
    puVar35 = (undefined4 *)(*(int *)(pcVar46 + -0x7c6c) + 0x1c);
    uVar6 = 8;
    do {
      uVar54 = uVar6;
      pEVar40 = (Elf32_Ehdr *)*puVar35;
      puVar35 = puVar35 + -1;
      uVar6 = uVar54 - 1;
    } while (pEVar40 < pEVar28);
    if (uVar54 == 0) {
      trap(7);
    }
    uVar6 = ((iVar8 + 1U) / uVar54 + 1) * 4;
    *(undefined4 *)(puVar49 + -0x20) = 0;
    if (uVar6 < 0x7f01) {
      iVar8 = -(uVar6 + 7 & 0xfffffff8);
      puVar9 = puVar49 + iVar8 + -0x38;
      pEVar40 = (Elf32_Ehdr *)(puVar49 + iVar8 + -0x28);
    }
    else {
      pEVar40 = (Elf32_Ehdr *)(**(code **)(pcVar46 + -0x7d50))(puVar49 + -0x20);
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    iVar37 = 0;
    uVar55 = 1;
    iVar8 = 0;
    uVar6 = 0;
    uVar54 = 6;
    do {
      uVar53 = uVar6 + 1;
      iVar26 = iVar8;
      uVar17 = uVar54;
      if ((uVar55 & *(uint *)(pEVar41->e_ident_magic_str + iVar37 * 4 + -1)) == 0) {
        uVar17 = (uVar53 & 1) + 1 + uVar53 * 3;
        if ((int)((ulonglong)uVar54 * ZEXT48(pEVar28) >> 0x20) == 0) {
          uVar17 = uVar54 * uVar17;
        }
        else {
          iVar26 = iVar8 + 1;
          *(uint *)(pEVar40->e_ident_magic_str + iVar8 * 4 + -1) = uVar54;
        }
      }
      uVar55 = uVar55 * 2 - ((int)uVar55 >> 0x1f);
      bVar1 = uVar6 != ((uint)((int)&pEVar28[-1].e_shentsize + 1) | 1) / 3;
      iVar37 = iVar37 + (uVar55 & 1);
      iVar8 = iVar26;
      uVar6 = uVar53;
      uVar54 = uVar17;
    } while (bVar1);
    if (iVar26 == 0) {
      *(uint *)piVar39[2] = uVar17;
      piVar39[1] = 1;
    }
    else {
      pcVar51 = *(code **)(pcVar46 + -0x7dbc);
      *(uint *)(pEVar40->e_ident_magic_str + iVar26 * 4 + -1) = uVar17;
      (*pcVar51)(piVar39,pEVar40,iVar26 + 1);
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
    piVar43 = *(int **)(puVar49 + -0x20);
    if (piVar43 != (int *)0x0) {
      (**(code **)(pcVar46 + -0x7a2c))();
      pcVar46 = *(code **)(puVar49 + -0x28);
    }
  }
  else {
    pEVar27 = (Elf32_Ehdr *)((int)pEVar28 * 4 + *(int *)(pcVar51 + 0x65b2c) + -0x2a60);
    *(undefined4 *)piVar39[2] = *(undefined4 *)pEVar27;
    piVar39[1] = 1;
    piVar43 = piVar39;
    pEVar40 = pEVar28;
    pEVar28 = pEVar27;
    puVar9 = puVar49 + -0x38;
  }
  if (*(int *)(puVar49 + -0x1c) == *piVar12) {
    return *piVar12;
  }
  pcVar51 = *(code **)(pcVar46 + -0x7b70);
  pcVar52 = __gmpz_probab_prime_p;
  (*pcVar51)();
  pcVar46 = *(code **)(pcVar51 + 0x659a8);
  *(int **)(puVar9 + -0x24) = piVar39;
  *(int **)(puVar9 + -0x20) = piVar12;
  piVar39 = *(int **)(pcVar51 + 0x65da0);
  *(Elf32_Ehdr **)(puVar9 + -0x18) = pEVar42;
  *(Elf32_Ehdr **)(puVar9 + -0x1c) = pEVar41;
  pEVar27 = (Elf32_Ehdr *)0xf4240;
  *(code **)(puVar9 + -0x90) = pcVar51 + 0x6d8a0;
  *(Elf32_Ehdr **)(puVar9 + -0x10) = pEVar10;
  *(Elf32_Ehdr **)(puVar9 + -0x14) = pEVar16;
  *(Elf32_Ehdr **)(puVar9 + -0x28) = pEVar28;
  *(code **)(puVar9 + -4) = pcVar52;
  *(undefined1 **)(puVar9 + -8) = puVar49 + -0x38;
  *(Elf32_Ehdr **)(puVar9 + -0xc) = pEVar5;
  *(int *)(puVar9 + -0x2c) = *piVar39;
  iVar8 = (*pcVar46)();
  puVar19 = (uint *)piVar43[2];
  iVar37 = *(int *)(puVar9 + -0x90);
  pEVar10 = (Elf32_Ehdr *)piVar43[1];
  uVar6 = *puVar19;
  if (iVar8 < 1) {
    pEVar27 = (Elf32_Ehdr *)0xf4240;
    iVar8 = (**(code **)(iVar37 + -0x7ab8))(piVar43);
    iVar37 = *(int *)(puVar9 + -0x90);
    if (iVar8 < 1) {
      iVar8 = 0;
      if (pEVar10 != (Elf32_Ehdr *)0x0) {
        if (uVar6 < 3) {
          iVar8 = 2;
          if (uVar6 != 2) {
            iVar8 = 0;
          }
        }
        else {
          uVar54 = 3;
          if ((uVar6 & 1) != 0) {
            do {
              if (uVar54 == 0) {
                trap(7);
              }
              uVar55 = uVar6 % uVar54;
              if (uVar6 / uVar54 < uVar54) {
                iVar8 = 2;
                goto LAB_00031824;
              }
              uVar54 = uVar54 + 2;
            } while (uVar55 != 0);
            iVar8 = 0;
          }
        }
      }
      goto LAB_00031824;
    }
    pEVar10 = (Elf32_Ehdr *)-(int)pEVar10;
    *(uint **)(puVar9 + -0x6c) = puVar19;
    piVar43 = (int *)(puVar9 + -0x74);
    *(Elf32_Ehdr **)(puVar9 + -0x70) = pEVar10;
  }
  if (pEVar10 != (Elf32_Ehdr *)0x0) {
    uVar6 = uVar6 & 1;
    iVar8 = 0;
    if (uVar6 == 0) goto LAB_00031824;
    pEVar27 = pEVar10;
    if ((int)pEVar10 < 10) {
      uVar54 = (**(code **)(iVar37 + -0x7c24))(puVar19,pEVar10,0xc0cfd797,0x53e5645c);
      iVar37 = *(int *)(puVar9 + -0x90);
    }
    else {
      uVar54 = (**(code **)(iVar37 + -0x7b80))(puVar19,pEVar10,0xc0cfd797);
      iVar37 = *(int *)(puVar9 + -0x90);
    }
    if ((((((uVar54 != (uVar54 / 3) * 3) && (uVar54 != (uVar54 / 5) * 5)) &&
          (uVar54 != (uVar54 / 7) * 7)) &&
         ((uVar54 != (uVar54 / 0xb) * 0xb && (uVar54 != (uVar54 / 0xd) * 0xd)))) &&
        ((uVar54 != (uVar54 / 0x11) * 0x11 &&
         ((uVar54 != (uVar54 / 0x13) * 0x13 && (uVar54 != (uVar54 / 0x17) * 0x17)))))) &&
       (uVar54 != (uVar54 / 0x1d) * 0x1d)) {
      uVar54 = (**(code **)(iVar37 + -0x7f14))(piVar43,2);
      iVar8 = *(int *)(puVar9 + -0x90);
      if (0x1f < uVar54) {
        iVar26 = 0;
        puVar36 = puVar9 + -0x68;
        uVar55 = 0x1f;
        iVar37 = 0;
LAB_00031a28:
        uVar17 = 3;
        do {
          if (uVar17 == 0) {
            trap(7);
          }
          uVar53 = uVar55 % uVar17;
          if (uVar55 / uVar17 < uVar17) {
            if (iVar26 * uVar6 + (int)((ulonglong)uVar6 * (ulonglong)uVar55 >> 0x20) == 0) {
              iVar50 = iVar37 + 1;
              uVar6 = (uint)((ulonglong)uVar6 * (ulonglong)uVar55);
              goto LAB_00031b4c;
            }
            *(undefined1 **)(puVar9 + -0x7c) = puVar36;
            *(int *)(puVar9 + -0x80) = iVar26;
            *(uint *)(puVar9 + -0x84) = uVar54;
            if ((int)pEVar10 < 10) {
              uVar6 = (**(code **)(iVar8 + -0x7c68))(puVar19,pEVar10,uVar6,0);
              iVar8 = *(int *)(puVar9 + -0x90);
              uVar54 = *(uint *)(puVar9 + -0x84);
              iVar26 = *(int *)(puVar9 + -0x80);
              puVar36 = *(undefined1 **)(puVar9 + -0x7c);
            }
            else {
              uVar6 = (**(code **)(iVar8 + -0x7b80))(puVar19,pEVar10,uVar6);
              iVar8 = *(int *)(puVar9 + -0x90);
              puVar36 = *(undefined1 **)(puVar9 + -0x7c);
              iVar26 = *(int *)(puVar9 + -0x80);
              uVar54 = *(uint *)(puVar9 + -0x84);
            }
            puVar23 = (uint *)(puVar36 + (iVar37 + 0x3fffffff) * 4);
            goto LAB_00031bcc;
          }
          uVar17 = uVar17 + 2;
          iVar50 = iVar37;
        } while (uVar53 != 0);
        goto LAB_00031a4c;
      }
LAB_00031a64:
      iVar8 = (**(code **)(iVar8 + -0x7d48))(piVar43);
      iVar37 = *(int *)(puVar9 + -0x90);
      pEVar27 = pEVar40;
      goto LAB_00031824;
    }
  }
  iVar8 = 0;
LAB_00031824:
  iVar26 = *(int *)(puVar9 + -0x2c);
  if (iVar26 == *piVar39) {
    return iVar8;
  }
LAB_00031c58:
  pcVar51 = *(code **)(iVar37 + -0x7b70);
  uVar44 = 0x31c64;
  (*pcVar51)();
  pcVar46 = pcVar51 + 0x6d3d0;
  pcVar18 = *(char **)(pcVar51 + 0x65518);
  *(int **)(puVar9 + -0xa8) = piVar39;
  *(Elf32_Ehdr **)(puVar9 + -0xac) = pEVar10;
  *(code **)(puVar9 + -0xb8) = pcVar46;
  *(undefined4 *)(puVar9 + -0xa4) = uVar44;
  if (*pcVar18 == '\0') {
    pcVar46 = *(code **)(pcVar51 + 0x65990);
    uVar44 = *(undefined4 *)(pcVar51 + 0x6560c);
    *pcVar18 = '\x01';
    (*pcVar46)(uVar44);
    pcVar46 = *(code **)(puVar9 + -0xb8);
  }
  pEVar10 = pEVar27;
  if ((int)pEVar27 < 0) {
    pEVar10 = (Elf32_Ehdr *)-(int)pEVar27;
  }
  iVar8 = (**(code **)(pcVar46 + -0x7f7c))
                    (iVar26,*(undefined4 *)(pcVar46 + -0x7dc4),(int)pEVar10 << 5);
  if ((int)pEVar27 < 0) {
    iVar8 = -*(int *)(iVar26 + 4);
    *(int *)(iVar26 + 4) = iVar8;
  }
  return iVar8;
joined_r0x00030154:
  if (iVar8 != 0) goto LAB_00030180;
  pEVar5 = (Elf32_Ehdr *)((int)&((Elf32_Ehdr *)((int)pEVar5 + 0xffffffcc))->e_shstrndx + 1);
  if (pEVar5 == (Elf32_Ehdr *)0x0) goto LAB_00030180;
  iVar8._0_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_phnum;
  iVar8._2_2_ = ((Elf32_Ehdr *)((int)pEVar7 + 0xffffffccU))->e_shentsize;
  pEVar7 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)pEVar7 + 0xffffffcc))->e_shnum;
  goto joined_r0x00030154;
LAB_00030180:
  if ((((undefined1  [52])*in_t3 & (undefined1  [52])0x1) == (undefined1  [52])0x0) ||
     (iVar37._0_1_ = param_2->e_ident_class, iVar37._1_1_ = param_2->e_ident_data,
     iVar37._2_1_ = param_2->e_ident_version, iVar37._3_1_ = param_2->e_ident_osabi, -1 < iVar37)) {
    if (*param_1 < (int)pEVar5) {
LAB_00030268:
      pEVar27 = pEVar5;
      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);
    }
    param_1[1] = (int)pEVar5;
    unaff_s0 = pEVar5;
    if (pEVar5 != (Elf32_Ehdr *)0x0) {
LAB_000301b4:
      puVar9 = (undefined1 *)((int)&pEVar5[-1].e_shstrndx + 1);
      pEVar30 = (Elf32_Ehdr *)param_1[2];
      pEVar27 = *(Elf32_Ehdr **)unaff_s5;
      pEVar24 = pEVar30;
      unaff_s0 = pEVar5;
      pEVar7 = unaff_s5;
      if (puVar9 != (undefined1 *)0x0) {
        do {
          *(Elf32_Ehdr **)pEVar24 = pEVar27;
          puVar9 = puVar9 + -1;
          pEVar27 = *(Elf32_Ehdr **)&pEVar7->e_ident_class;
          pEVar24 = (Elf32_Ehdr *)&pEVar24->e_ident_class;
          pEVar7 = (Elf32_Ehdr *)&pEVar7->e_ident_class;
        } while (puVar9 != (undefined1 *)0x0);
        unaff_s0 = (Elf32_Ehdr *)((int)pEVar5 * 4 + -4);
        pEVar30 = (Elf32_Ehdr *)(pEVar30->e_ident_magic_str + (int)&pEVar5[-1].e_shstrndx * 4 + 3);
      }
      *(Elf32_Ehdr **)pEVar30 = pEVar27;
    }
  }
  else {
    unaff_s0 = pEVar5;
    if (pEVar5 != (Elf32_Ehdr *)0x0) {
      param_2 = *(Elf32_Ehdr **)(param_4 + 8);
      pEVar27 = param_2;
      pEVar30 = unaff_s5;
      pEVar40 = pEVar5;
      iVar8 = (*(code *)PTR___gmpn_sub_n_00097514)(unaff_s5);
      if (iVar8 == 0) {
LAB_000303e0:
        if ((param_2 == unaff_s5) || ((int)pEVar10 <= (int)pEVar5)) goto LAB_00030390;
        in_t2 = param_2->e_ident_magic_str + (int)pEVar10 * 4 + -1;
        pbVar15 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);
        pbVar14 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);
        do {
          uVar44 = *(undefined4 *)pbVar15;
          pbVar15 = pbVar15 + 4;
          *(undefined4 *)pbVar14 = uVar44;
          pbVar14 = pbVar14 + 4;
        } while (pbVar15 != (byte *)in_t2);
        iVar26 = *(int *)pcVar18;
        unaff_s0 = pEVar5;
      }
      else {
        if ((int)pEVar5 < (int)pEVar10) {
          pbVar14 = (byte *)(param_2->e_ident_magic_str + (int)pEVar5 * 4 + -1);
          pbVar15 = (byte *)(unaff_s5->e_ident_magic_str + (int)pEVar5 * 4 + -1);
          iVar8 = *(int *)pbVar14;
          pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);
          *(Elf32_Ehdr **)pbVar15 = pEVar27;
          while (pEVar5 = (Elf32_Ehdr *)pEVar5->e_ident_magic_str, iVar8 == 0) {
            pbVar15 = pbVar15 + 4;
            if (pEVar10 == pEVar5) goto LAB_00030390;
            iVar8 = *(int *)(pbVar14 + 4);
            pbVar14 = pbVar14 + 4;
            pEVar27 = (Elf32_Ehdr *)(iVar8 + -1);
            *(Elf32_Ehdr **)pbVar15 = pEVar27;
          }
          goto LAB_000303e0;
        }
LAB_00030390:
        iVar26 = *(int *)pcVar18;
        unaff_s0 = pEVar5;
      }
      while (pEVar5 = pEVar16, iVar26 == 0) {
        pEVar16 = (Elf32_Ehdr *)((int)&pEVar5[-1].e_shstrndx + 1);
        if (pEVar16 == (Elf32_Ehdr *)0x0) goto LAB_00030250;
        iVar26._0_2_ = in_t1[-0xffffffff00000001].e_phnum;
        iVar26._2_2_ = in_t1[-0xffffffff00000001].e_shentsize;
        in_t1 = (Elf32_Ehdr *)&in_t1[-1].e_shnum;
      }
      pEVar16 = pEVar5;
      if (*param_1 < (int)pEVar5) goto LAB_00030268;
      param_1[1] = (int)pEVar5;
      goto LAB_000301b4;
    }
LAB_00030250:
    if (*param_1 < 0) {
      pEVar27 = (Elf32_Ehdr *)0x0;
      (*(code *)PTR___gmpz_realloc_000975bc)(param_1);
      param_1[1] = 0;
    }
    else {
      param_1[1] = 0;
    }
  }
  pEVar5 = local_30;
  param_3 = pEVar30;
  puVar9 = puVar47;
  if (local_30 != (Elf32_Ehdr *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_00097614)();
    param_3 = pEVar30;
  }
  goto LAB_00030200;
LAB_00031bcc:
  iVar37 = iVar37 + -1;
  if (iVar37 == -1) goto code_r0x00031bd8;
  uVar17 = *puVar23;
  if (uVar17 == 0) {
    trap(7);
  }
  puVar23 = puVar23 + -1;
  if (uVar6 % uVar17 == 0) {
    pEVar27 = pEVar10;
    iVar26 = (**(code **)(iVar8 + -0x7b80))(puVar19);
    iVar8 = 0;
    iVar37 = *(int *)(puVar9 + -0x90);
    if (iVar26 == 0) goto LAB_00031824;
    pEVar27 = (Elf32_Ehdr *)0x81;
    iVar26 = *(int *)(iVar37 + -0x7fd4) + -0x29e4;
    (**(code **)(iVar37 + -0x7c20))(iVar26,0x81,*(int *)(iVar37 + -0x7fd4) + -0x2a40);
    goto LAB_00031c58;
  }
  goto LAB_00031bcc;
code_r0x00031bd8:
  iVar50 = 1;
  iVar37 = 0;
  uVar6 = uVar55;
LAB_00031b4c:
  *(uint *)(puVar9 + iVar37 * 4 + -0x68) = uVar55;
LAB_00031a4c:
  uVar17 = uVar55 + 2;
  iVar26 = (uint)(uVar17 < uVar55) + iVar26;
  uVar55 = uVar17;
  iVar37 = iVar50;
  if (uVar54 <= uVar17) goto LAB_00031a64;
  goto LAB_00031a28;
}

