
/* WARNING: Type propagation algorithm not settling */

int __gmpn_hgcd_appr(mp_ptr ap,mp_ptr bp,mp_size_t n,hgcd_matrix *M,mp_ptr tp)

{
  bool bVar1;
  byte bVar2;
  Elf32_Ehdr *pEVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  Elf32_Ehdr *pEVar7;
  char *pcVar8;
  int iVar9;
  Elf32_Ehdr *pEVar10;
  Elf32_Ehdr *M_00;
  uint uVar11;
  Elf32_Ehdr *tp_00;
  uint uVar12;
  Elf32_Ehdr *pEVar13;
  Elf32_Ehdr *pEVar14;
  int iVar15;
  undefined1 *puVar16;
  int iVar17;
  Elf32_Ehdr *pEVar18;
  uint uVar19;
  uint uVar20;
  int iVar21;
  undefined *puVar22;
  int iVar23;
  int iVar24;
  Elf32_Ehdr *in_stack_ffffffa0;
  uint *puStack_5c;
  hgcd_matrix1 M1;
  
  puVar22 = PTR___stack_chk_guard_0009d540;
  pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;
  if (n < 3) {
    iVar21 = 0;
    M_00 = (Elf32_Ehdr *)bp;
    tp_00 = (Elf32_Ehdr *)n;
    pEVar13 = (Elf32_Ehdr *)M;
  }
  else {
    iVar23 = n >> 1;
    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);
    if (n < 400) {
      iVar21 = 0;
      iVar23 = 0;
LAB_000586e4:
      M_00 = (Elf32_Ehdr *)ap;
      tp_00 = (Elf32_Ehdr *)bp;
      pEVar13 = pEVar18;
      in_stack_ffffffa0 = (Elf32_Ehdr *)M;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);
      iVar24 = iVar23;
      if (pEVar3 != (Elf32_Ehdr *)0x0) {
        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);
        n = (mp_size_t)pEVar3;
        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=
            (undefined1 *)((int)pEVar18 << 6)) {
          if (iVar23 == 0) {
            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;
            n = (mp_size_t)pEVar14;
            if (pEVar14 != pEVar3) {
              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));
              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);
              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);
              pEVar7 = pEVar13;
              do {
                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);
                if (*(int *)pcVar8 != 0) {
                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);
                  goto LAB_00058780;
                }
                pcVar8 = pcVar8 + -4;
                n = (mp_size_t)pEVar3;
                iVar24 = 0;
              } while (pEVar7 != (Elf32_Ehdr *)0x0);
            }
          }
          else {
            iVar24 = iVar23 + -1;
            pEVar14 = pEVar18;
LAB_00058978:
            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;
            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);
            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);
            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);
            n = (mp_size_t)((int)pEVar3 - uVar19);
          }
        }
        goto LAB_00058864;
      }
      goto LAB_00058870;
    }
    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);
    iVar24 = n;
    iVar21 = iVar17;
    if (iVar17 != 0) {
      iVar21 = 1;
      iVar24 = iVar17;
    }
    while ((n * 3 >> 2) + 1 < iVar24) {
      puStack_5c = tp;
      M_00 = (Elf32_Ehdr *)ap;
      tp_00 = (Elf32_Ehdr *)bp;
      pEVar13 = pEVar18;
      in_stack_ffffffa0 = (Elf32_Ehdr *)M;
      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);
      if (iVar24 == 0) goto LAB_00058820;
      iVar21 = 1;
    }
    puStack_5c = tp;
    if (iVar23 + 3 < iVar24) {
      M_00 = (Elf32_Ehdr *)&M1;
      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;
      iVar23 = iVar24 - iVar17;
      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);
      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);
      pEVar13 = M_00;
      in_stack_ffffffa0 = tp_00;
      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);
      if (iVar23 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);
        iVar21 = 1;
        goto LAB_00058820;
      }
    }
    while( true ) {
      M_00 = (Elf32_Ehdr *)ap;
      tp_00 = (Elf32_Ehdr *)bp;
      pEVar13 = pEVar18;
      in_stack_ffffffa0 = (Elf32_Ehdr *)M;
      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);
      if (iVar24 == 0) break;
      iVar21 = 1;
    }
  }
  goto LAB_00058820;
  while( true ) {
    pcVar8 = pcVar8 + -4;
    n = (mp_size_t)pEVar3;
    iVar24 = 0;
    if (pEVar13 == (Elf32_Ehdr *)0x0) break;
LAB_00058780:
    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);
    if (*(int *)pcVar8 != 0) {
      iVar24 = 0x1f;
      goto LAB_00058978;
    }
  }
LAB_00058864:
  iVar21 = 1;
  iVar23 = iVar24;
  if (n < 3) goto LAB_00058870;
  goto LAB_000586e4;
LAB_00058c8c:
  if (uVar20 != uVar12) {
    uVar12 = uVar12 - uVar20;
    if (uVar12 < 0x20000) goto LAB_00058b84;
    iVar9 = uVar19 * 8;
    if (uVar20 < uVar12) {
      iVar15 = 0;
      uVar19 = uVar20;
      if ((int)uVar12 < 0) {
        iVar15 = 1;
        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {
          iVar15 = iVar15 + 1;
        }
        uVar5 = 0;
        do {
          iVar15 = iVar15 + -1;
          uVar5 = uVar5 << 1;
          if (uVar19 <= uVar12) {
            uVar12 = uVar12 - uVar19;
            uVar5 = uVar5 | 1;
          }
          uVar19 = uVar19 >> 1;
        } while (iVar15 != 0);
      }
      else {
        do {
          uVar11 = uVar19;
          uVar19 = uVar11 << 1;
          iVar15 = iVar15 + 1;
        } while (uVar19 <= uVar12);
        uVar5 = 0;
        uVar11 = uVar11 & 0x7fffffff;
        do {
          iVar15 = iVar15 + -1;
          uVar5 = uVar5 << 1;
          if (uVar11 <= uVar12) {
            uVar12 = uVar12 - uVar11;
            uVar5 = uVar5 | 1;
          }
          uVar11 = uVar11 >> 1;
        } while (iVar15 != 0);
      }
      if (uVar12 < 0x20000) {
        iVar17 = iVar24 * uVar5 + iVar17;
        iVar23 = iVar23 + (int)puVar16 * uVar5;
        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));
        goto LAB_00058b84;
      }
      uVar5 = uVar5 + 1;
      iVar17 = iVar24 * uVar5 + iVar17;
      iVar23 = iVar23 + (int)puVar16 * uVar5;
      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));
    }
    else {
      iVar17 = iVar17 + iVar24;
      iVar23 = iVar23 + (int)puVar16;
      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);
    }
LAB_00058c5c:
    bVar1 = uVar20 == uVar12;
    uVar20 = uVar20 - uVar12;
    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;
    if (uVar12 < uVar20) {
      iVar9 = 0;
      uVar5 = uVar12;
      if ((int)uVar20 < 0) {
        iVar9 = 1;
        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {
          iVar9 = iVar9 + 1;
        }
        uVar11 = 0;
        do {
          iVar9 = iVar9 + -1;
          uVar11 = uVar11 << 1;
          if (uVar5 <= uVar20) {
            uVar20 = uVar20 - uVar5;
            uVar11 = uVar11 | 1;
          }
          uVar5 = uVar5 >> 1;
        } while (iVar9 != 0);
      }
      else {
        do {
          uVar6 = uVar5;
          uVar5 = uVar6 << 1;
          iVar9 = iVar9 + 1;
        } while (uVar5 <= uVar20);
        uVar11 = 0;
        uVar6 = uVar6 & 0x7fffffff;
        do {
          iVar9 = iVar9 + -1;
          uVar11 = uVar11 << 1;
          if (uVar6 <= uVar20) {
            uVar20 = uVar20 - uVar6;
            uVar11 = uVar11 | 1;
          }
          uVar6 = uVar6 >> 1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar19 * 8 + 4;
      if (uVar20 < 0x20000) {
        iVar24 = iVar17 * uVar11 + iVar24;
        puVar16 = puVar16 + iVar23 * uVar11;
        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));
        goto LAB_00058b84;
      }
      uVar11 = uVar11 + 1;
      iVar24 = iVar17 * uVar11 + iVar24;
      puVar16 = puVar16 + iVar23 * uVar11;
      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));
    }
    else {
      iVar24 = iVar24 + iVar17;
      puVar16 = puVar16 + iVar23;
      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);
    }
    goto LAB_00058c8c;
  }
  goto LAB_00058b84;
LAB_00058870:
  pEVar3 = (Elf32_Ehdr *)bp;
  if (iVar24 == 0) {
LAB_00058924:
    puStack_5c = tp;
    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {
      pEVar18 = (Elf32_Ehdr *)&M1;
      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;
      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;
      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;
      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;
      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;
      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;
      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;
      in_stack_ffffffa0 = pEVar18;
      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);
      if (iVar23 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);
        iVar21 = 1;
        M_00 = pEVar18;
        tp_00 = (Elf32_Ehdr *)tp;
      }
    }
  }
  else {
    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);
    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);
    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;
    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;
    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;
    M_00 = (Elf32_Ehdr *)bp;
    tp_00 = (Elf32_Ehdr *)n;
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);
    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);
    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;
    n = (mp_size_t)
        (((Elf32_Ehdr *)n)->e_ident_magic_str +
        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));
    do {
      if (n < 3) goto LAB_00058924;
      puStack_5c = tp;
      M_00 = (Elf32_Ehdr *)ap;
      tp_00 = pEVar3;
      pEVar13 = pEVar18;
      in_stack_ffffffa0 = (Elf32_Ehdr *)M;
      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);
    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);
    iVar21 = 1;
  }
LAB_00058820:
  if (pEVar10 == *(Elf32_Ehdr **)puVar22) {
    return iVar21;
  }
  puVar22 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  if ((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)) {
    return 0;
  }
  if ((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))) {
    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));
    iVar21 = *(int *)(puVar22 + 0x44940);
    if (pEVar10 < (Elf32_Ehdr *)0x2) {
      return 0;
    }
    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);
    iVar23 = 0;
    iVar24 = 1;
    puVar16 = &DAT_00000001;
    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);
    iVar17 = 1;
    if (pEVar10 < tp_00) goto LAB_00058c00;
  }
  else {
    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));
    iVar21 = *(int *)(puVar22 + 0x44940);
    if (tp_00 < (Elf32_Ehdr *)0x2) {
      return 0;
    }
    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);
    iVar23 = 1;
    iVar24 = 0;
    puVar16 = &DAT_00000001;
    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);
    iVar17 = 1;
    if (pEVar10 < tp_00) {
LAB_00058c00:
      iVar17 = 1;
      puVar16 = &DAT_00000001;
      goto LAB_00058c04;
    }
  }
  while (pEVar10 != tp_00) {
    if (pEVar10 < &Elf32_Ehdr_00010000) {
      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;
      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;
      goto LAB_00058c5c;
    }
    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));
    if (pEVar10 < (Elf32_Ehdr *)0x2) break;
    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);
    if (tp_00 < pEVar10) {
      iVar9 = 0;
      pEVar18 = tp_00;
      pEVar3 = pEVar13;
      if ((int)pEVar10 < 0) {
        iVar9 = 1;
        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {
          uVar20 = (uint)pEVar3 >> 0x1f;
          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);
          iVar9 = iVar9 + 1;
        }
        uVar20 = 0;
        do {
          uVar20 = uVar20 << 1;
          if (pEVar18 < pEVar10) {
            uVar12 = (uint)(M_00 < pEVar3);
LAB_00058f3c:
            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);
            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));
            uVar20 = uVar20 | 1;
          }
          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {
            uVar12 = 0;
            goto LAB_00058f3c;
          }
          iVar9 = iVar9 + -1;
          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);
          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);
        } while (iVar9 != 0);
      }
      else {
        do {
          do {
            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);
            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);
            iVar9 = iVar9 + 1;
            pEVar3 = pEVar14;
          } while (pEVar18 < pEVar10);
        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));
        uVar20 = 0;
        do {
          uVar12 = (int)pEVar18 << 0x1f;
          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);
          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);
          uVar20 = uVar20 << 1;
          if (pEVar18 < pEVar10) {
            uVar12 = (uint)(M_00 < pEVar14);
LAB_00058dd8:
            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);
            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));
            uVar20 = uVar20 | 1;
          }
          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {
            uVar12 = 0;
            goto LAB_00058dd8;
          }
          iVar9 = iVar9 + -1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar19 * 8 + 4;
      if (pEVar10 < (Elf32_Ehdr *)0x2) {
        iVar24 = iVar17 * uVar20 + iVar24;
        puVar16 = puVar16 + iVar23 * uVar20;
        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));
        break;
      }
      uVar20 = uVar20 + 1;
      iVar15 = iVar17 * uVar20;
      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));
      iVar9 = iVar23 * uVar20;
    }
    else {
      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);
      iVar15 = iVar17;
      iVar9 = iVar23;
    }
    puVar16 = puVar16 + iVar9;
    iVar24 = iVar24 + iVar15;
    uVar19 = (uint)bVar2;
    if (pEVar10 == tp_00) break;
LAB_00058c04:
    if (tp_00 < &Elf32_Ehdr_00010000) {
      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;
      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;
      goto LAB_00058c8c;
    }
    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));
    if (tp_00 < (Elf32_Ehdr *)0x2) break;
    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);
    iVar9 = uVar19 * 8;
    if (pEVar10 < tp_00) {
      iVar15 = 0;
      pEVar18 = pEVar10;
      pEVar3 = M_00;
      if ((int)tp_00 < 0) {
        iVar15 = 1;
        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {
          uVar19 = (uint)pEVar3 >> 0x1f;
          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);
          iVar15 = iVar15 + 1;
        }
        uVar19 = 0;
        do {
          uVar19 = uVar19 << 1;
          if (pEVar18 < tp_00) {
            uVar20 = (uint)(pEVar13 < pEVar3);
LAB_0005900c:
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);
            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));
            uVar19 = uVar19 | 1;
          }
          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {
            uVar20 = 0;
            goto LAB_0005900c;
          }
          iVar15 = iVar15 + -1;
          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);
          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);
        } while (iVar15 != 0);
      }
      else {
        do {
          do {
            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);
            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);
            iVar15 = iVar15 + 1;
            pEVar3 = pEVar14;
          } while (pEVar18 < tp_00);
        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));
        uVar19 = 0;
        do {
          uVar20 = (int)pEVar18 << 0x1f;
          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);
          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);
          uVar19 = uVar19 << 1;
          if (pEVar18 < tp_00) {
            uVar20 = (uint)(pEVar13 < pEVar14);
LAB_00058d20:
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);
            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));
            uVar19 = uVar19 | 1;
          }
          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {
            uVar20 = 0;
            goto LAB_00058d20;
          }
          iVar15 = iVar15 + -1;
        } while (iVar15 != 0);
      }
      if (tp_00 < (Elf32_Ehdr *)0x2) {
        iVar17 = uVar19 * iVar24 + iVar17;
        iVar23 = iVar23 + uVar19 * (int)puVar16;
        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));
        break;
      }
      uVar19 = uVar19 + 1;
      iVar17 = uVar19 * iVar24 + iVar17;
      iVar23 = iVar23 + uVar19 * (int)puVar16;
      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));
    }
    else {
      iVar17 = iVar17 + iVar24;
      iVar23 = iVar23 + (int)puVar16;
      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);
    }
  }
LAB_00058b84:
  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);
  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10);
  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8);
  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17;
  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18);
  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10);
  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8);
  in_stack_ffffffa0->e_ident_osabi = (char)iVar24;
  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18);
  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10);
  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8);
  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23;
  *(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16;
  *puStack_5c = uVar19;
  return 1;
}



Elf32_Ehdr *
__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,
                Elf32_Ehdr *param_5)

{
  bool bVar1;
  byte bVar2;
  Elf32_Ehdr *pEVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  Elf32_Ehdr *pEVar7;
  byte *pbVar8;
  int iVar9;
  byte *pbVar10;
  Elf32_Ehdr *pEVar11;
  uint uVar12;
  Elf32_Ehdr *pEVar13;
  uint uVar14;
  Elf32_Ehdr *pEVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  Elf32_Ehdr *pEVar20;
  uint uVar21;
  uint uVar22;
  Elf32_Ehdr *pEVar23;
  undefined *puVar24;
  int iVar25;
  int iVar26;
  Elf32_Ehdr *in_stack_ffffffa0;
  Elf32_Ehdr *local_5c;
  Elf32_Ehdr *local_2c;
  
  puVar24 = PTR___stack_chk_guard_0009d540;
  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;
  if ((int)param_3 < 3) {
    pEVar23 = (Elf32_Ehdr *)0x0;
    pEVar11 = param_2;
    pEVar13 = param_3;
    pEVar15 = param_4;
  }
  else {
    iVar25 = (int)param_3 >> 1;
    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);
    if ((int)param_3 < 400) {
      pEVar23 = (Elf32_Ehdr *)0x0;
      iVar25 = 0;
LAB_000586e4:
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);
      iVar26 = iVar25;
      if (pEVar3 != (Elf32_Ehdr *)0x0) {
        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);
        param_3 = pEVar3;
        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=
            (undefined1 *)((int)pEVar20 << 6)) {
          if (iVar25 == 0) {
            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;
            param_3 = pEVar23;
            if (pEVar23 != pEVar3) {
              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));
              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;
              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);
              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;
              pEVar7 = pEVar15;
              do {
                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);
                if (*(int *)pbVar10 != 0) {
                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;
                  goto LAB_00058780;
                }
                pbVar10 = pbVar10 + -4;
                param_3 = pEVar3;
                iVar26 = 0;
              } while (pEVar7 != (Elf32_Ehdr *)0x0);
            }
          }
          else {
            iVar26 = iVar25 + -1;
            pEVar23 = pEVar20;
LAB_00058978:
            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;
            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);
            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);
            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);
            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);
          }
        }
        goto LAB_00058864;
      }
      goto LAB_00058870;
    }
    pEVar11 = (Elf32_Ehdr *)
              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);
    pEVar3 = param_3;
    pEVar23 = pEVar11;
    if (pEVar11 != (Elf32_Ehdr *)0x0) {
      pEVar23 = (Elf32_Ehdr *)0x1;
      pEVar3 = pEVar11;
    }
    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {
      local_5c = param_5;
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);
      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;
      pEVar23 = (Elf32_Ehdr *)0x1;
    }
    local_5c = param_5;
    if (iVar25 + 3 < (int)pEVar3) {
      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;
      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;
      iVar25 = (int)pEVar3 - iVar26;
      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);
      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);
      pEVar15 = pEVar11;
      in_stack_ffffffa0 = pEVar13;
      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);
      if (iVar25 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);
        pEVar23 = (Elf32_Ehdr *)0x1;
        goto LAB_00058820;
      }
    }
    while( true ) {
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);
      if (pEVar3 == (Elf32_Ehdr *)0x0) break;
      pEVar23 = (Elf32_Ehdr *)0x1;
    }
  }
  goto LAB_00058820;
  while( true ) {
    pbVar8 = pbVar8 + -4;
    param_3 = pEVar3;
    iVar26 = 0;
    if (pEVar15 == (Elf32_Ehdr *)0x0) break;
LAB_00058780:
    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);
    if (*(int *)pbVar8 != 0) {
      iVar26 = 0x1f;
      goto LAB_00058978;
    }
  }
LAB_00058864:
  pEVar23 = (Elf32_Ehdr *)0x1;
  iVar25 = iVar26;
  if ((int)param_3 < 3) goto LAB_00058870;
  goto LAB_000586e4;
LAB_00058c8c:
  if (uVar22 != uVar14) {
    uVar14 = uVar14 - uVar22;
    if (uVar14 < 0x20000) goto LAB_00058b84;
    iVar9 = uVar21 * 8;
    if (uVar22 < uVar14) {
      iVar16 = 0;
      uVar21 = uVar22;
      if ((int)uVar14 < 0) {
        iVar16 = 1;
        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {
          iVar16 = iVar16 + 1;
        }
        uVar5 = 0;
        do {
          iVar16 = iVar16 + -1;
          uVar5 = uVar5 << 1;
          if (uVar21 <= uVar14) {
            uVar14 = uVar14 - uVar21;
            uVar5 = uVar5 | 1;
          }
          uVar21 = uVar21 >> 1;
        } while (iVar16 != 0);
      }
      else {
        do {
          uVar12 = uVar21;
          uVar21 = uVar12 << 1;
          iVar16 = iVar16 + 1;
        } while (uVar21 <= uVar14);
        uVar5 = 0;
        uVar12 = uVar12 & 0x7fffffff;
        do {
          iVar16 = iVar16 + -1;
          uVar5 = uVar5 << 1;
          if (uVar12 <= uVar14) {
            uVar14 = uVar14 - uVar12;
            uVar5 = uVar5 | 1;
          }
          uVar12 = uVar12 >> 1;
        } while (iVar16 != 0);
      }
      if (uVar14 < 0x20000) {
        iVar19 = iVar17 * uVar5 + iVar19;
        iVar26 = iVar18 * uVar5 + iVar26;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));
        goto LAB_00058b84;
      }
      uVar5 = uVar5 + 1;
      iVar19 = iVar17 * uVar5 + iVar19;
      iVar26 = iVar18 * uVar5 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));
    }
    else {
      iVar19 = iVar19 + iVar17;
      iVar26 = iVar26 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);
    }
LAB_00058c5c:
    bVar1 = uVar22 == uVar14;
    uVar22 = uVar22 - uVar14;
    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;
    if (uVar14 < uVar22) {
      iVar9 = 0;
      uVar5 = uVar14;
      if ((int)uVar22 < 0) {
        iVar9 = 1;
        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {
          iVar9 = iVar9 + 1;
        }
        uVar12 = 0;
        do {
          iVar9 = iVar9 + -1;
          uVar12 = uVar12 << 1;
          if (uVar5 <= uVar22) {
            uVar22 = uVar22 - uVar5;
            uVar12 = uVar12 | 1;
          }
          uVar5 = uVar5 >> 1;
        } while (iVar9 != 0);
      }
      else {
        do {
          uVar6 = uVar5;
          uVar5 = uVar6 << 1;
          iVar9 = iVar9 + 1;
        } while (uVar5 <= uVar22);
        uVar12 = 0;
        uVar6 = uVar6 & 0x7fffffff;
        do {
          iVar9 = iVar9 + -1;
          uVar12 = uVar12 << 1;
          if (uVar6 <= uVar22) {
            uVar22 = uVar22 - uVar6;
            uVar12 = uVar12 | 1;
          }
          uVar6 = uVar6 >> 1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar21 * 8 + 4;
      if (uVar22 < 0x20000) {
        iVar17 = iVar19 * uVar12 + iVar17;
        iVar18 = iVar26 * uVar12 + iVar18;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));
        goto LAB_00058b84;
      }
      uVar12 = uVar12 + 1;
      iVar17 = iVar19 * uVar12 + iVar17;
      iVar18 = iVar26 * uVar12 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));
    }
    else {
      iVar17 = iVar17 + iVar19;
      iVar18 = iVar18 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);
    }
    goto LAB_00058c8c;
  }
  goto LAB_00058b84;
LAB_00058870:
  pEVar3 = param_2;
  if (iVar26 == 0) {
LAB_00058924:
    local_5c = param_5;
    if (param_3 == (Elf32_Ehdr *)0x2) {
      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;
      pEVar15 = *(Elf32_Ehdr **)pEVar3;
      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;
      pEVar11 = *(Elf32_Ehdr **)param_1;
      uVar4._0_1_ = param_1->e_ident_class;
      uVar4._1_1_ = param_1->e_ident_data;
      uVar4._2_1_ = param_1->e_ident_version;
      uVar4._3_1_ = param_1->e_ident_osabi;
      in_stack_ffffffa0 = pEVar20;
      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);
      if (iVar25 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);
        pEVar23 = (Elf32_Ehdr *)0x1;
        pEVar11 = pEVar20;
        pEVar13 = param_5;
      }
    }
  }
  else {
    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);
    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);
    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;
    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;
    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;
    pEVar11 = param_2;
    pEVar13 = param_3;
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);
    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);
    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;
    param_3 = (Elf32_Ehdr *)
              (param_3->e_ident_magic_str +
              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||
               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));
    do {
      if ((int)param_3 < 3) goto LAB_00058924;
      local_5c = param_5;
      pEVar11 = param_1;
      pEVar13 = pEVar3;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);
    } while (param_3 != (Elf32_Ehdr *)0x0);
    pEVar23 = (Elf32_Ehdr *)0x1;
  }
LAB_00058820:
  if (local_2c == *(Elf32_Ehdr **)puVar24) {
    return pEVar23;
  }
  puVar24 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {
    return (Elf32_Ehdr *)0x0;
  }
  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {
    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));
    iVar25 = *(int *)(puVar24 + 0x44940);
    if (local_2c < (Elf32_Ehdr *)0x2) {
      return (Elf32_Ehdr *)0x0;
    }
    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);
    iVar26 = 0;
    iVar17 = 1;
    iVar18 = 1;
    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);
    iVar19 = 1;
    if (local_2c < pEVar13) goto LAB_00058c00;
  }
  else {
    pEVar13 = (Elf32_Ehdr *)
              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));
    iVar25 = *(int *)(puVar24 + 0x44940);
    if (pEVar13 < (Elf32_Ehdr *)0x2) {
      return (Elf32_Ehdr *)0x0;
    }
    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);
    iVar26 = 1;
    iVar17 = 0;
    iVar18 = 1;
    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);
    iVar19 = 1;
    if (local_2c < pEVar13) {
LAB_00058c00:
      iVar19 = 1;
      iVar18 = 1;
      goto LAB_00058c04;
    }
  }
  while (local_2c != pEVar13) {
    if (local_2c < &Elf32_Ehdr_00010000) {
      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;
      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;
      goto LAB_00058c5c;
    }
    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));
    if (local_2c < (Elf32_Ehdr *)0x2) break;
    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);
    if (pEVar13 < local_2c) {
      iVar9 = 0;
      pEVar23 = pEVar13;
      pEVar20 = pEVar15;
      if ((int)local_2c < 0) {
        iVar9 = 1;
        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {
          uVar22 = (uint)pEVar20 >> 0x1f;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);
          iVar9 = iVar9 + 1;
        }
        uVar22 = 0;
        do {
          uVar22 = uVar22 << 1;
          if (pEVar23 < local_2c) {
            uVar14 = (uint)(pEVar11 < pEVar20);
LAB_00058f3c:
            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);
            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));
            uVar22 = uVar22 | 1;
          }
          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {
            uVar14 = 0;
            goto LAB_00058f3c;
          }
          iVar9 = iVar9 + -1;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
        } while (iVar9 != 0);
      }
      else {
        do {
          do {
            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);
            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);
            iVar9 = iVar9 + 1;
            pEVar20 = pEVar3;
          } while (pEVar23 < local_2c);
        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));
        uVar22 = 0;
        do {
          uVar14 = (int)pEVar23 << 0x1f;
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);
          uVar22 = uVar22 << 1;
          if (pEVar23 < local_2c) {
            uVar14 = (uint)(pEVar11 < pEVar3);
LAB_00058dd8:
            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);
            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));
            uVar22 = uVar22 | 1;
          }
          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {
            uVar14 = 0;
            goto LAB_00058dd8;
          }
          iVar9 = iVar9 + -1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar21 * 8 + 4;
      if (local_2c < (Elf32_Ehdr *)0x2) {
        iVar17 = iVar19 * uVar22 + iVar17;
        iVar18 = iVar26 * uVar22 + iVar18;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));
        break;
      }
      uVar22 = uVar22 + 1;
      iVar16 = iVar19 * uVar22;
      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));
      iVar9 = iVar26 * uVar22;
    }
    else {
      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);
      iVar16 = iVar19;
      iVar9 = iVar26;
    }
    iVar18 = iVar18 + iVar9;
    iVar17 = iVar17 + iVar16;
    uVar21 = (uint)bVar2;
    if (local_2c == pEVar13) break;
LAB_00058c04:
    if (pEVar13 < &Elf32_Ehdr_00010000) {
      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;
      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;
      goto LAB_00058c8c;
    }
    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));
    if (pEVar13 < (Elf32_Ehdr *)0x2) break;
    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);
    iVar9 = uVar21 * 8;
    if (local_2c < pEVar13) {
      iVar16 = 0;
      pEVar23 = local_2c;
      pEVar20 = pEVar11;
      if ((int)pEVar13 < 0) {
        iVar16 = 1;
        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {
          uVar21 = (uint)pEVar20 >> 0x1f;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);
          iVar16 = iVar16 + 1;
        }
        uVar21 = 0;
        do {
          uVar21 = uVar21 << 1;
          if (pEVar23 < pEVar13) {
            uVar22 = (uint)(pEVar15 < pEVar20);
LAB_0005900c:
            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));
            uVar21 = uVar21 | 1;
          }
          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {
            uVar22 = 0;
            goto LAB_0005900c;
          }
          iVar16 = iVar16 + -1;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
        } while (iVar16 != 0);
      }
      else {
        do {
          do {
            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);
            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);
            iVar16 = iVar16 + 1;
            pEVar20 = pEVar3;
          } while (pEVar23 < pEVar13);
        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));
        uVar21 = 0;
        do {
          uVar22 = (int)pEVar23 << 0x1f;
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);
          uVar21 = uVar21 << 1;
          if (pEVar23 < pEVar13) {
            uVar22 = (uint)(pEVar15 < pEVar3);
LAB_00058d20:
            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));
            uVar21 = uVar21 | 1;
          }
          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {
            uVar22 = 0;
            goto LAB_00058d20;
          }
          iVar16 = iVar16 + -1;
        } while (iVar16 != 0);
      }
      if (pEVar13 < (Elf32_Ehdr *)0x2) {
        iVar19 = uVar21 * iVar17 + iVar19;
        iVar26 = uVar21 * iVar18 + iVar26;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));
        break;
      }
      uVar21 = uVar21 + 1;
      iVar19 = uVar21 * iVar17 + iVar19;
      iVar26 = uVar21 * iVar18 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));
    }
    else {
      iVar19 = iVar19 + iVar17;
      iVar26 = iVar26 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);
    }
  }
LAB_00058b84:
  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);
  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);
  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);
  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;
  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);
  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);
  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);
  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;
  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);
  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);
  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);
  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;
  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;
  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);
  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);
  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);
  local_5c->e_ident_magic_str[2] = (char)uVar21;
  return (Elf32_Ehdr *)0x1;
}


lui gp,0x5
addiu gp,gp,-0x3618
addu gp,gp,t9
lw v0,-0x7b00(gp)
addiu sp,sp,-0x70
or v1,v0,zero
sw s1,0x4c(sp)
or s1,a0,zero
sw gp,0x18(sp)
sw v0,0x20(sp)
slti v0,a2,0x3
sw s3,0x54(sp)
sw ra,0x6c(sp)
sw s8,0x68(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s2,0x50(sp)
sw s0,0x48(sp)
lw a0,0x0(v1)
lw s3,0x80(sp)
sw a0,0x44(sp)
bne v0,zero,0x000589ac
_slti v0,a2,0x190
sra s8,a2,0x1
or s5,a2,zero
or s2,a1,zero
or s4,a3,zero
beq v0,zero,0x00058794
_addiu s0,s8,0x1
lui s6,0x3fff
or s8,zero,zero
or s7,zero,zero
ori s6,s6,0xffff
lw t9,-0x7b24(gp)
or a3,s0,zero
sw s3,0x14(sp)
or a2,s2,zero
sw s4,0x10(sp)
or a1,s1,zero
jalr t9
_or a0,s5,zero
beq v0,zero,0x00058870
_lw gp,0x18(sp)
addiu a0,v0,0x1
sll a2,s8,0x1
sll a0,a0,0x5
sll v1,s0,0x6
addu a0,a0,a2
sltu v1,v1,a0
bne v1,zero,0x00058860
_nop
bne s8,zero,0x00058974
_or t0,s0,zero
addiu t0,s0,0x1
beq t0,v0,0x000589a4
_subu v1,v0,s0
addu a1,s0,s6
addiu a3,v1,-0x1
addu a1,a1,v1
or v1,a3,zero
sll a1,a1,0x2
b 0x00058764
_addu a0,s1,a1
beq v1,zero,0x00058860
_addiu a0,a0,-0x4
lw s8,0x0(a0)
beq s8,zero,0x0005875c
_addiu v1,v1,-0x1
b 0x00058780
_addu v1,s2,a1
beq a3,zero,0x00058860
_addiu v1,v1,-0x4
lw s8,0x0(v1)
beq s8,zero,0x00058778
_addiu a3,a3,-0x1
b 0x00058978
_li s8,0x1f
sll s6,a2,0x1
lw t9,-0x7f30(gp)
or a3,a2,zero
sw s3,0x14(sp)
addu s6,s6,a2
sw s8,0x10(sp)
or a2,a1,zero
sra s6,s6,0x2
or a1,s1,zero
jalr t9
_or a0,s4,zero
addiu s6,s6,0x1
lw gp,0x18(sp)
bne v0,zero,0x000589b4
_or s7,v0,zero
slt v0,s6,s5
bne v0,zero,0x000587f4
_lw t9,-0x7b24(gp)
b 0x000589c4
_addiu s8,s8,0x3
slt v0,s6,v0
beq v0,zero,0x000589c0
_li s7,0x1
lw t9,-0x7b24(gp)
or a0,s5,zero
sw s3,0x14(sp)
or a3,s0,zero
sw s4,0x10(sp)
or a2,s2,zero
jalr t9
_or a1,s1,zero
lw gp,0x18(sp)
bne v0,zero,0x000587e4
_or s5,v0,zero
lw v1,0x20(sp)
or v0,s7,zero
lw a0,0x44(sp)
lw v1,0x0(v1)
bne a0,v1,0x00058aac
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
or s5,v0,zero
slti v0,s5,0x3
beq v0,zero,0x000586e4
_li s7,0x1
beq s8,zero,0x00058924
_li v0,0x2
li v0,0x20
lw t9,-0x7ae0(gp)
or a2,s5,zero
subu s8,v0,s8
or a1,s1,zero
or a0,s1,zero
jalr t9
_or a3,s8,zero
or a0,s2,zero
lw gp,0x18(sp)
or a2,s5,zero
sw v0,-0x4(s1)
or a1,s2,zero
or a3,s8,zero
addiu s1,s1,-0x4
lw t9,-0x7ae0(gp)
jalr t9
_addiu s2,s2,-0x4
sll a0,s5,0x2
lw gp,0x18(sp)
sw v0,0x0(s2)
addu v0,s1,a0
addu a0,s2,a0
lw v0,0x0(v0)
lw a0,0x0(a0)
or v0,v0,a0
sltu v0,zero,v0
b 0x00058914
_addu s5,s5,v0
or a0,s5,zero
sw s3,0x14(sp)
or a3,s0,zero
sw s4,0x10(sp)
or a2,s2,zero
jalr t9
_or a1,s1,zero
lw gp,0x18(sp)
beq v0,zero,0x00058aa4
_or s5,v0,zero
slti v0,s5,0x3
beq v0,zero,0x000588ec
_lw t9,-0x7b24(gp)
li v0,0x2
bne s5,v0,0x00058820
_lw v1,0x20(sp)
lw t9,-0x7be0(gp)
addiu s0,sp,0x2c
lw a3,0x0(s2)
lw a2,0x4(s2)
lw a1,0x0(s1)
lw a0,0x4(s1)
jalr t9
_sw s0,0x10(sp)
beq v0,zero,0x0005881c
_lw gp,0x18(sp)
lw t9,-0x7c4c(gp)
or a2,s3,zero
or a1,s0,zero
jalr t9
_or a0,s4,zero
li s7,0x1
b 0x0005881c
_lw gp,0x18(sp)
addiu s8,s8,-0x1
sll s0,s0,0x1
subu s0,s0,v0
sll s0,s0,0x5
subu s0,s0,a2
srl s0,s0,0x5
sll a0,s0,0x2
subu s5,v0,s0
addu s1,s1,a0
addu s2,s2,a0
b 0x00058864
_subu s0,t0,s0
b 0x00058864
_or s5,t0,zero
b 0x0005881c
_or s7,zero,zero
or s5,v0,zero
b 0x000587d0
_li s7,0x1
addiu s8,s8,0x3
slt s8,s8,s5
beq s8,zero,0x00058a74
_lw t9,-0x7b24(gp)
sll s8,s0,0x1
lw t9,-0x7c84(gp)
addiu s6,sp,0x2c
subu s8,s8,s5
or a2,s3,zero
addiu s8,s8,0x1
or a0,s6,zero
subu t0,s5,s8
or a1,t0,zero
jalr t9
_sw t0,0x24(sp)
sll a0,s8,0x2
lw t0,0x24(sp)
or a3,s6,zero
lw gp,0x18(sp)
addu a1,s2,a0
addu a0,s1,a0
addiu a2,t0,0x1
srl v0,a2,0x1f
lw t9,-0x7fc0(gp)
addu v0,v0,a2
addiu t9,t9,-0x79a8
sra s8,v0,0x1
or a2,t0,zero
addiu s8,s8,0x1
sll s8,s8,0x4
addu s8,s3,s8
bal 0x00058658
_sw s8,0x10(sp)
beq v0,zero,0x00058a70
_lw gp,0x18(sp)
lw t9,-0x7e58(gp)
or a2,s8,zero
or a1,s6,zero
jalr t9
_or a0,s4,zero
li s7,0x1
b 0x0005881c
_lw gp,0x18(sp)
li s7,0x1
lw t9,-0x7b24(gp)
or a0,s5,zero
sw s3,0x14(sp)
or a3,s0,zero
sw s4,0x10(sp)
or a2,s2,zero
jalr t9
_or a1,s1,zero
lw gp,0x18(sp)
bne v0,zero,0x00058a6c
_or s5,v0,zero
b 0x00058820
_lw v1,0x20(sp)
b 0x0005881c
_li s7,0x1
lw t9,-0x7b70(gp)
jalr t9
_nop
nop
nop
(translation_unit "Elf32_Ehdr *\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}\n\n" (function_definition "Elf32_Ehdr *\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" type_identifier (pointer_declarator "*\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" * (function_declarator "__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" identifier (parameter_list "(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" ( (parameter_declaration "Elf32_Ehdr *param_1" type_identifier (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 "Elf32_Ehdr *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "Elf32_Ehdr *pEVar11;" type_identifier (pointer_declarator "*pEVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar13;" type_identifier (pointer_declarator "*pEVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar23;" type_identifier (pointer_declarator "*pEVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_stack_ffffffa0;" type_identifier (pointer_declarator "*in_stack_ffffffa0" * identifier) ;) (declaration "Elf32_Ehdr *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "Elf32_Ehdr *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" * (cast_expression "(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" identifier = identifier) ;) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" identifier = identifier) ;) (expression_statement "pEVar15 = param_4;" (assignment_expression "pEVar15 = param_4" identifier = identifier) ;) }) (else_clause "else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" else (compound_statement "{\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" { (expression_statement "iVar25 = (int)param_3 >> 1;" (assignment_expression "iVar25 = (int)param_3 >> 1" identifier = (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar25 + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )))) ;) (if_statement "if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" if (parenthesized_expression "((int)param_3 < 400)" ( (binary_expression "(int)param_3 < 400" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000586e4:\n      pEVar11 = param_1;" statement_identifier : (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;)) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (if_statement "if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" if (parenthesized_expression "(pEVar3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar25 * 2)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 * 2)" ( (binary_expression "iVar25 * 2" identifier * number_literal) )))) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (if_statement "if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" if (parenthesized_expression "(pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6))" ( (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20" (field_expression "pEVar13->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar3->e_ident_magic_str * 0x20" (cast_expression "(int)pEVar3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + number_literal) <= (cast_expression "(undefined1 *)((int)pEVar20 << 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 6)" ( (binary_expression "(int)pEVar20 << 6" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (compound_statement "{\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" { (if_statement "if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar20->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "param_3 = pEVar23;" (assignment_expression "param_3 = pEVar23" identifier = identifier) ;) (if_statement "if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" if (parenthesized_expression "(pEVar23 != pEVar3)" ( (binary_expression "pEVar23 != pEVar3" identifier != identifier) )) (compound_statement "{\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" { (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + (-1 - (int)pEVar20))" ( (binary_expression "(int)pEVar3 + (-1 - (int)pEVar20)" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)pEVar20)" ( (binary_expression "-1 - (int)pEVar20" number_literal - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pbVar8 = pEVar3[0x13b13b1].e_ident_pad;" (assignment_expression "pbVar8 = pEVar3[0x13b13b1].e_ident_pad" identifier = (field_expression "pEVar3[0x13b13b1].e_ident_pad" (subscript_expression "pEVar3[0x13b13b1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pbVar8 + 2) * 4)" ( (binary_expression "(int)(pbVar8 + 2) * 4" (cast_expression "(int)(pbVar8 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + 2)" ( (binary_expression "pbVar8 + 2" identifier + number_literal) ))) * number_literal) )))) ;) (expression_statement "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1" identifier = (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_1->e_ident_pad" identifier -> field_identifier) + (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pEVar7 = pEVar15;" (assignment_expression "pEVar7 = pEVar15" identifier = identifier) ;) (do_statement "do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              }" { (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar7[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar7[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar7[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar7[-1].e_shstrndx" & (field_expression "pEVar7[-1].e_shstrndx" (subscript_expression "pEVar7[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" if (parenthesized_expression "(*(int *)pbVar10 != 0)" ( (binary_expression "*(int *)pbVar10 != 0" (pointer_expression "*(int *)pbVar10" * (cast_expression "(int *)pbVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" { (expression_statement "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1" identifier = (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_2->e_ident_pad" identifier -> field_identifier) + (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (goto_statement "goto LAB_00058780;" goto statement_identifier ;) })) (expression_statement "pbVar10 = pbVar10 + -4;" (assignment_expression "pbVar10 = pbVar10 + -4" identifier = (binary_expression "pbVar10 + -4" identifier + number_literal)) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) }) while (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)) )) ;) })) }) (else_clause "else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" else (compound_statement "{\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" { (expression_statement "iVar26 = iVar25 + -1;" (assignment_expression "iVar26 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "pEVar23 = pEVar20;" (assignment_expression "pEVar23 = pEVar20" identifier = identifier) ;) (labeled_statement "LAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" statement_identifier : (expression_statement "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" (assignment_expression "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" identifier = (binary_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" (call_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" ( (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2" (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" ( (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (binary_expression "iVar25 * -2" identifier * number_literal)) ))) >> number_literal)) ;)) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + uVar21 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + uVar21 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + uVar21 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + uVar21 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 - uVar21)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 - uVar21)" ( (binary_expression "(int)pEVar23 - uVar21" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 - uVar21)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 - uVar21)" ( (binary_expression "(int)pEVar3 - uVar21" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) }))) })) (goto_statement "goto LAB_00058864;" goto statement_identifier ;) })) (goto_statement "goto LAB_00058870;" goto statement_identifier ;) })) (expression_statement "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" identifier = (cast_expression "(Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_reduce_0009d110" * (cast_expression "(code *)PTR___gmpn_hgcd_reduce_0009d110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_1,param_2,param_3,iVar25)" ( identifier , identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pEVar3 = param_3;" (assignment_expression "pEVar3 = param_3" identifier = identifier) ;) (expression_statement "pEVar23 = pEVar11;" (assignment_expression "pEVar23 = pEVar11" identifier = identifier) ;) (if_statement "if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\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      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar3 = pEVar11;" (assignment_expression "pEVar3 = pEVar11" identifier = identifier) ;) })) (while_statement "while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" while (parenthesized_expression "(((int)param_3 * 3 >> 2) + 1 < (int)pEVar3)" ( (binary_expression "((int)param_3 * 3 >> 2) + 1 < (int)pEVar3" (binary_expression "((int)param_3 * 3 >> 2) + 1" (parenthesized_expression "((int)param_3 * 3 >> 2)" ( (binary_expression "(int)param_3 * 3 >> 2" (binary_expression "(int)param_3 * 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) >> number_literal) )) + number_literal) < (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" { (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar3)" ( identifier ))))) ;) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;" if (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00058820;" goto statement_identifier ;)) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (if_statement "if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" if (parenthesized_expression "(iVar25 + 3 < (int)pEVar3)" ( (binary_expression "iVar25 + 3 < (int)pEVar3" (binary_expression "iVar25 + 3" identifier + number_literal) < (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" { (expression_statement "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc" identifier = (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffbc" & identifier))) ;) (expression_statement "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;" (assignment_expression "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1" identifier = (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) + 1" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" ( (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) (expression_statement "iVar25 = (int)pEVar3 - iVar26;" (assignment_expression "iVar25 = (int)pEVar3 - iVar26" identifier = (binary_expression "(int)pEVar3 - iVar26" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar11,iVar25,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" identifier = (cast_expression "(Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" ( (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7" (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10" (field_expression "param_5->e_ident_pad" identifier -> field_identifier) + (binary_expression "((iVar25 + 1) / 2) * 0x10" (parenthesized_expression "((iVar25 + 1) / 2)" ( (binary_expression "(iVar25 + 1) / 2" (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )) / number_literal) )) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar15 = pEVar11;" (assignment_expression "pEVar15 = pEVar11" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = pEVar13;" (assignment_expression "in_stack_ffffffa0 = pEVar13" identifier = identifier) ;) (expression_statement "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);" (assignment_expression "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" identifier = (call_expression "__gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" identifier (argument_list "((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" ( (binary_expression "(int)param_1 + iVar26 * 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) , (binary_expression "(int)param_2 + iVar26 * 4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) , identifier )))) ;) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" { (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar3)" ( identifier ))))) ;) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) break;" if (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) (while_statement "while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" { (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (if_statement "if (pEVar15 == (Elf32_Ehdr *)0x0) break;" if (parenthesized_expression "(pEVar15 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar15 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar15[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar15[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar15[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar15[-1].e_shstrndx" & (field_expression "pEVar15[-1].e_shstrndx" (subscript_expression "pEVar15[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" if (parenthesized_expression "(*(int *)pbVar8 != 0)" ( (binary_expression "*(int *)pbVar8 != 0" (pointer_expression "*(int *)pbVar8" * (cast_expression "(int *)pbVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" { (expression_statement "iVar26 = 0x1f;" (assignment_expression "iVar26 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00058978;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;" statement_identifier : (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar25 = iVar26;" (assignment_expression "iVar25 = iVar26" identifier = identifier) ;) (if_statement "if ((int)param_3 < 3) goto LAB_00058870;" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00058870;" goto statement_identifier ;)) (goto_statement "goto LAB_000586e4;" goto statement_identifier ;) (labeled_statement "LAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" statement_identifier : (if_statement "if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" if (parenthesized_expression "(uVar22 != uVar14)" ( (binary_expression "uVar22 != uVar14" identifier != identifier) )) (compound_statement "{\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" { (expression_statement "uVar14 = uVar14 - uVar22;" (assignment_expression "uVar14 = uVar14 - uVar22" identifier = (binary_expression "uVar14 - uVar22" identifier - identifier)) ;) (if_statement "if (uVar14 < 0x20000) goto LAB_00058b84;" if (parenthesized_expression "(uVar14 < 0x20000)" ( (binary_expression "uVar14 < 0x20000" identifier < number_literal) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" identifier = (binary_expression "uVar21 * 8" identifier * number_literal)) ;) (if_statement "if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" if (parenthesized_expression "(uVar22 < uVar14)" ( (binary_expression "uVar22 < uVar14" identifier < identifier) )) (compound_statement "{\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" identifier = identifier) ;) (if_statement "if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar21 <= uVar14)" ( (binary_expression "uVar21 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar14 = uVar14 - uVar21;" (assignment_expression "uVar14 = uVar14 - uVar21" identifier = (binary_expression "uVar14 - uVar21" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar21 = uVar21 >> 1;" (assignment_expression "uVar21 = uVar21 >> 1" identifier = (binary_expression "uVar21 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" { (do_statement "do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);" do (compound_statement "{\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "uVar12 = uVar21;" (assignment_expression "uVar12 = uVar21" identifier = identifier) ;) (expression_statement "uVar21 = uVar12 << 1;" (assignment_expression "uVar21 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 <= uVar14)" ( (binary_expression "uVar21 <= uVar14" identifier <= identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar12 & 0x7fffffff;" (assignment_expression "uVar12 = uVar12 & 0x7fffffff" identifier = (binary_expression "uVar12 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar12 <= uVar14)" ( (binary_expression "uVar12 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar14 = uVar14 - uVar12;" (assignment_expression "uVar14 = uVar14 - uVar12" identifier = (binary_expression "uVar14 - uVar12" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar12 = uVar12 >> 1;" (assignment_expression "uVar12 = uVar12 >> 1" identifier = (binary_expression "uVar12 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar14 < 0x20000)" ( (binary_expression "uVar14 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" identifier = (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" identifier = (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" identifier = (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" identifier = (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" { (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" identifier = (binary_expression "iVar19 + iVar17" identifier + identifier)) ;) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" identifier = (binary_expression "iVar26 + iVar18" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + 1)" ( (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) (labeled_statement "LAB_00058c5c:\n    bVar1 = uVar22 == uVar14;" statement_identifier : (expression_statement "bVar1 = uVar22 == uVar14;" (assignment_expression "bVar1 = uVar22 == uVar14" identifier = (binary_expression "uVar22 == uVar14" identifier == identifier)) ;)) (expression_statement "uVar22 = uVar22 - uVar14;" (assignment_expression "uVar22 = uVar22 - uVar14" identifier = (binary_expression "uVar22 - uVar14" identifier - identifier)) ;) (if_statement "if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;" if (parenthesized_expression "((bVar1) || (uVar22 < 0x20000))" ( (binary_expression "(bVar1) || (uVar22 < 0x20000)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar22 < 0x20000)" ( (binary_expression "uVar22 < 0x20000" identifier < number_literal) ))) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (if_statement "if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" if (parenthesized_expression "(uVar14 < uVar22)" ( (binary_expression "uVar14 < uVar22" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)uVar22 < 0)" ( (binary_expression "(int)uVar22 < 0" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (if_statement "if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" if (parenthesized_expression "(uVar5 <= uVar22)" ( (binary_expression "uVar5 <= uVar22" identifier <= identifier) )) (compound_statement "{\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" { (expression_statement "uVar22 = uVar22 - uVar5;" (assignment_expression "uVar22 = uVar22 - uVar5" identifier = (binary_expression "uVar22 - uVar5" identifier - identifier)) ;) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" identifier = (binary_expression "uVar12 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);" do (compound_statement "{\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (expression_statement "uVar5 = uVar6 << 1;" (assignment_expression "uVar5 = uVar6 << 1" identifier = (binary_expression "uVar6 << 1" identifier << number_literal)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 <= uVar22)" ( (binary_expression "uVar5 <= uVar22" identifier <= identifier) )) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar6 & 0x7fffffff;" (assignment_expression "uVar6 = uVar6 & 0x7fffffff" identifier = (binary_expression "uVar6 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (if_statement "if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" if (parenthesized_expression "(uVar6 <= uVar22)" ( (binary_expression "uVar6 <= uVar22" identifier <= identifier) )) (compound_statement "{\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" { (expression_statement "uVar22 = uVar22 - uVar6;" (assignment_expression "uVar22 = uVar22 - uVar6" identifier = (binary_expression "uVar22 - uVar6" identifier - identifier)) ;) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" identifier = (binary_expression "uVar12 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar6 = uVar6 >> 1;" (assignment_expression "uVar6 = uVar6 >> 1" identifier = (binary_expression "uVar6 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" identifier = (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar22 < 0x20000)" ( (binary_expression "uVar22 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" identifier = (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" identifier = (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" identifier = (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" identifier = (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" else (compound_statement "{\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" { (expression_statement "iVar17 = iVar17 + iVar19;" (assignment_expression "iVar17 = iVar17 + iVar19" identifier = (binary_expression "iVar17 + iVar19" identifier + identifier)) ;) (expression_statement "iVar18 = iVar18 + iVar26;" (assignment_expression "iVar18 = iVar18 + iVar26" identifier = (binary_expression "iVar18 + iVar26" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" ( (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal)) + number_literal) ))))) ;) }))) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) (labeled_statement "LAB_00058870:\n  pEVar3 = param_2;" statement_identifier : (expression_statement "pEVar3 = param_2;" (assignment_expression "pEVar3 = param_2" identifier = identifier) ;)) (if_statement "if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }" { (labeled_statement "LAB_00058924:\n    local_5c = param_5;" statement_identifier : (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;)) (if_statement "if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x2)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x2" identifier == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc" identifier = (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffbc" & identifier))) ;) (expression_statement "pEVar15 = *(Elf32_Ehdr **)pEVar3;" (assignment_expression "pEVar15 = *(Elf32_Ehdr **)pEVar3" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar3" * (cast_expression "(Elf32_Ehdr **)pEVar3" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar13 = *(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 "pEVar11 = *(Elf32_Ehdr **)param_1;" (assignment_expression "pEVar11 = *(Elf32_Ehdr **)param_1" identifier = (pointer_expression "*(Elf32_Ehdr **)param_1" * (cast_expression "(Elf32_Ehdr **)param_1" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar4._0_1_ = param_1->e_ident_class;" (assignment_expression "uVar4._0_1_ = param_1->e_ident_class" (field_expression "uVar4._0_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar4._1_1_ = param_1->e_ident_data;" (assignment_expression "uVar4._1_1_ = param_1->e_ident_data" (field_expression "uVar4._1_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar4._2_1_ = param_1->e_ident_version;" (assignment_expression "uVar4._2_1_ = param_1->e_ident_version" (field_expression "uVar4._2_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar4._3_1_ = param_1->e_ident_osabi;" (assignment_expression "uVar4._3_1_ = param_1->e_ident_osabi" (field_expression "uVar4._3_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "in_stack_ffffffa0 = pEVar20;" (assignment_expression "in_stack_ffffffa0 = pEVar20" identifier = identifier) ;) (expression_statement "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);" (assignment_expression "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd2_0009d460" * (cast_expression "(code *)PTR___gmpn_hgcd2_0009d460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar11 = pEVar20;" (assignment_expression "pEVar11 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar13 = param_5;" (assignment_expression "pEVar13 = param_5" identifier = identifier) ;) })) })) }) (else_clause "else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" else (compound_statement "{\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" { (expression_statement "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26)" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - iVar26)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - iVar26)" ( (binary_expression "0x20 - iVar26" number_literal - identifier) )))) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_3,pEVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_1[-0xffffffff00000001].e_shnum" (subscript_expression "param_1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_1[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;" (assignment_expression "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&param_1[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_1[-1].e_shnum" & (field_expression "param_1[-1].e_shnum" (subscript_expression "param_1[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&param_2[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_2[-1].e_shnum" & (field_expression "param_2[-1].e_shnum" (subscript_expression "param_2[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" identifier = identifier) ;) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" identifier = identifier) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_2[-0xffffffff00000001].e_shnum" (subscript_expression "param_2[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_2[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_2[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" ( (binary_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1" (parenthesized_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0)" ( (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2)" * (cast_expression "(int *)((int)param_1 + (int)param_3 * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + (int)param_3 * 2 * 2)" ( (binary_expression "(int)param_1 + (int)param_3 * 2 * 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) * number_literal)) )))) != number_literal) || (binary_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" * (cast_expression "(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + (int)param_3 * 2 * 2)" ( (binary_expression "(int)pEVar3 + (int)param_3 * 2 * 2" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) * number_literal)) )))) != number_literal)) )) - number_literal) ))) )))) ;) (do_statement "do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    }" { (if_statement "if ((int)param_3 < 3) goto LAB_00058924;" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00058924;" goto statement_identifier ;)) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = pEVar3;" (assignment_expression "pEVar13 = pEVar3" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) }) while (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" statement_identifier : (if_statement "if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" if (parenthesized_expression "(local_2c == *(Elf32_Ehdr **)puVar24)" ( (binary_expression "local_2c == *(Elf32_Ehdr **)puVar24" identifier == (pointer_expression "*(Elf32_Ehdr **)puVar24" * (cast_expression "(Elf32_Ehdr **)puVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return pEVar23;\n  }" { (return_statement "return pEVar23;" return identifier ;) }))) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }" if (parenthesized_expression "((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2))" ( (binary_expression "(local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)" (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    return (Elf32_Ehdr *)0x0;\n  }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" if (parenthesized_expression "((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))))" ( (binary_expression "(pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" (parenthesized_expression "(pEVar13 < local_2c)" ( (binary_expression "pEVar13 < local_2c" identifier < identifier) )) || (parenthesized_expression "((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" ( (parenthesized_expression "(local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))" ( (binary_expression "local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)" (binary_expression "local_2c == pEVar13" identifier == identifier) && (parenthesized_expression "(pEVar15 < pEVar11 != 0)" ( (binary_expression "pEVar15 < pEVar11 != 0" (binary_expression "pEVar15 < pEVar11" identifier < identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }" { (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" ( (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" - (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar15)" ( (binary_expression "pEVar11 < pEVar15" identifier < identifier) )))) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar24 + 0x44940)" * (cast_expression "(int *)(puVar24 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x44940)" ( (binary_expression "puVar24 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" ( (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 5)" ( (binary_expression "iVar25 + *(int *)local_5c * 8 + 5" (binary_expression "iVar25 + *(int *)local_5c * 8" identifier + (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" * (cast_expression "(int *)local_5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (if_statement "if (local_2c < pEVar13) goto LAB_00058c00;" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (goto_statement "goto LAB_00058c00;" goto statement_identifier ;)) }) (else_clause "else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" else (compound_statement "{\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" identifier = (cast_expression "(Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" ( (binary_expression "(int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" ( (binary_expression "local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)" (field_expression "local_2c->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((pEVar15 < pEVar11) - 1)" ( (binary_expression "(pEVar15 < pEVar11) - 1" (parenthesized_expression "(pEVar15 < pEVar11)" ( (binary_expression "pEVar15 < pEVar11" identifier < identifier) )) - number_literal) ))) )))) )))) ;) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar24 + 0x44940)" * (cast_expression "(int *)(puVar24 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x44940)" ( (binary_expression "puVar24 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" ( (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 1)" ( (binary_expression "iVar25 + *(int *)local_5c * 8 + 1" (binary_expression "iVar25 + *(int *)local_5c * 8" identifier + (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" * (cast_expression "(int *)local_5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (if_statement "if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (compound_statement "{\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" { (labeled_statement "LAB_00058c00:\n      iVar19 = 1;" statement_identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;)) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00058c04;" goto statement_identifier ;) })) }))) (while_statement "while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" while (parenthesized_expression "(local_2c != pEVar13)" ( (binary_expression "local_2c != pEVar13" identifier != identifier) )) (compound_statement "{\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" { (if_statement "if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" if (parenthesized_expression "(local_2c < &Elf32_Ehdr_00010000)" ( (binary_expression "local_2c < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" { (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" identifier = (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" ( (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" identifier = (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" ( (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c5c;" goto statement_identifier ;) })) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" ( (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" - (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar15)" ( (binary_expression "pEVar11 < pEVar15" identifier < identifier) )))) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" ( (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" if (parenthesized_expression "(pEVar13 < local_2c)" ( (binary_expression "pEVar13 < local_2c" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pEVar23 = pEVar13;" (assignment_expression "pEVar23 = pEVar13" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar15;" (assignment_expression "pEVar20 = pEVar15" identifier = identifier) ;) (if_statement "if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)local_2c < 0)" ( (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar23" number_literal < (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 | (int)pEVar23 << 1)" ( (binary_expression "uVar22 | (int)pEVar23 << 1" identifier | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar22 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x1f" identifier = (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" { (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" identifier = (binary_expression "uVar22 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" { (expression_statement "uVar14 = (uint)(pEVar11 < pEVar20);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar20)" identifier = (call_expression "(uint)(pEVar11 < pEVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar20)" ( (binary_expression "pEVar11 < pEVar20" identifier < identifier) )))) ;) (labeled_statement "LAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" statement_identifier : (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar20)" ( (binary_expression "(int)pEVar11 - (int)pEVar20" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" ( (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar14)" ( (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" identifier = (binary_expression "uVar22 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" else (if_statement "if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "((local_2c == pEVar23) && (pEVar20 <= pEVar11))" ( (binary_expression "(local_2c == pEVar23) && (pEVar20 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" ( (binary_expression "local_2c == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar20 <= pEVar11)" ( (binary_expression "pEVar20 <= pEVar11" identifier <= identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058f3c;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));" do (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        }" { (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);" do (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          }" { (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) ;) }) while (parenthesized_expression "((local_2c == pEVar23) && (pEVar3 <= pEVar11))" ( (binary_expression "(local_2c == pEVar23) && (pEVar3 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" ( (binary_expression "local_2c == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar11)" ( (binary_expression "pEVar3 <= pEVar11" identifier <= identifier) ))) )) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        }" { (expression_statement "uVar14 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar14 = (int)pEVar23 << 0x1f" identifier = (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 | (uint)pEVar3 >> 1)" ( (binary_expression "uVar14 | (uint)pEVar3 >> 1" identifier | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" identifier = (binary_expression "uVar22 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" { (expression_statement "uVar14 = (uint)(pEVar11 < pEVar3);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar3)" identifier = (call_expression "(uint)(pEVar11 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar3)" ( (binary_expression "pEVar11 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" statement_identifier : (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar3)" ( (binary_expression "(int)pEVar11 - (int)pEVar3" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" ( (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar14)" ( (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" identifier = (binary_expression "uVar22 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" else (if_statement "if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "((pEVar23 == local_2c) && (pEVar3 <= pEVar11))" ( (binary_expression "(pEVar23 == local_2c) && (pEVar3 <= pEVar11)" (parenthesized_expression "(pEVar23 == local_2c)" ( (binary_expression "pEVar23 == local_2c" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar11)" ( (binary_expression "pEVar3 <= pEVar11" identifier <= identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058dd8;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" identifier = (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" { (expression_statement "iVar17 = iVar19 * uVar22 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar22 + iVar17" identifier = (binary_expression "iVar19 * uVar22 + iVar17" (binary_expression "iVar19 * uVar22" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar22 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar22 + iVar18" identifier = (binary_expression "iVar26 * uVar22 + iVar18" (binary_expression "iVar26 * uVar22" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar19 * uVar22;" (assignment_expression "iVar16 = iVar19 * uVar22" identifier = (binary_expression "iVar19 * uVar22" identifier * identifier)) ;) (expression_statement "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3))" identifier = (pointer_expression "*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) ))) ))))) ;) (expression_statement "iVar9 = iVar26 * uVar22;" (assignment_expression "iVar9 = iVar26 * uVar22" identifier = (binary_expression "iVar26 * uVar22" identifier * identifier)) ;) }) (else_clause "else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" else (compound_statement "{\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5)" identifier = (pointer_expression "*(byte *)(iVar25 + uVar21 * 8 + 5)" * (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" ( (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar16 = iVar19;" (assignment_expression "iVar16 = iVar19" identifier = identifier) ;) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" identifier = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + iVar9;" (assignment_expression "iVar18 = iVar18 + iVar9" identifier = (binary_expression "iVar18 + iVar9" identifier + identifier)) ;) (expression_statement "iVar17 = iVar17 + iVar16;" (assignment_expression "iVar17 = iVar17 + iVar16" identifier = (binary_expression "iVar17 + iVar16" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)bVar2;" (assignment_expression "uVar21 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_2c == pEVar13) break;" if (parenthesized_expression "(local_2c == pEVar13)" ( (binary_expression "local_2c == pEVar13" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" statement_identifier : (if_statement "if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" if (parenthesized_expression "(pEVar13 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar13 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" { (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" identifier = (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" ( (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" identifier = (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" ( (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" ( (binary_expression "(int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar15 < pEVar11) - (int)local_2c)" ( (binary_expression "-(uint)(pEVar15 < pEVar11) - (int)local_2c" (unary_expression "-(uint)(pEVar15 < pEVar11)" - (call_expression "(uint)(pEVar15 < pEVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar11)" ( (binary_expression "pEVar15 < pEVar11" identifier < identifier) )))) - (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" ( (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" identifier = (binary_expression "uVar21 * 8" identifier * number_literal)) ;) (if_statement "if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (compound_statement "{\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "pEVar23 = local_2c;" (assignment_expression "pEVar23 = local_2c" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar11;" (assignment_expression "pEVar20 = pEVar11" identifier = identifier) ;) (if_statement "if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" if (parenthesized_expression "((int)pEVar13 < 0)" ( (binary_expression "(int)pEVar13 < 0" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar23" number_literal < (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar21 | (int)pEVar23 << 1)" ( (binary_expression "uVar21 | (int)pEVar23 << 1" identifier | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "uVar21 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar21 = (uint)pEVar20 >> 0x1f" identifier = (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);" do (compound_statement "{\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" { (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" { (expression_statement "uVar22 = (uint)(pEVar15 < pEVar20);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar20)" identifier = (call_expression "(uint)(pEVar15 < pEVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar20)" ( (binary_expression "pEVar15 < pEVar20" identifier < identifier) )))) ;) (labeled_statement "LAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar20)" ( (binary_expression "(int)pEVar15 - (int)pEVar20" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar22)" ( (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" identifier = (binary_expression "uVar21 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" else (if_statement "if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar20 <= pEVar15))" ( (binary_expression "(pEVar13 == pEVar23) && (pEVar20 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" ( (binary_expression "pEVar13 == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar20 <= pEVar15)" ( (binary_expression "pEVar20 <= pEVar15" identifier <= identifier) ))) )) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005900c;" goto statement_identifier ;) })))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));" do (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        }" { (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);" do (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          }" { (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) ;) }) while (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar3 <= pEVar15))" ( (binary_expression "(pEVar13 == pEVar23) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" ( (binary_expression "pEVar13 == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar15)" ( (binary_expression "pEVar3 <= pEVar15" identifier <= identifier) ))) )) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        }" { (expression_statement "uVar22 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar22 = (int)pEVar23 << 0x1f" identifier = (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 | (uint)pEVar3 >> 1)" ( (binary_expression "uVar22 | (uint)pEVar3 >> 1" identifier | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" { (expression_statement "uVar22 = (uint)(pEVar15 < pEVar3);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar3)" identifier = (call_expression "(uint)(pEVar15 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar3)" ( (binary_expression "pEVar15 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar3)" ( (binary_expression "(int)pEVar15 - (int)pEVar3" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar22)" ( (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" identifier = (binary_expression "uVar21 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" else (if_statement "if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "((pEVar23 == pEVar13) && (pEVar3 <= pEVar15))" ( (binary_expression "(pEVar23 == pEVar13) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar23 == pEVar13)" ( (binary_expression "pEVar23 == pEVar13" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar15)" ( (binary_expression "pEVar3 <= pEVar15" identifier <= identifier) ))) )) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058d20;" goto statement_identifier ;) })))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" { (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" identifier = (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" identifier = (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" identifier = (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" identifier = (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" { (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" identifier = (binary_expression "iVar19 + iVar17" identifier + identifier)) ;) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" identifier = (binary_expression "iVar26 + iVar18" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + 1)" ( (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) })) (labeled_statement "LAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" statement_identifier : (expression_statement "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 0x18)" ( (binary_expression "(uint)iVar19 >> 0x18" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[0]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 0x10)" ( (binary_expression "(uint)iVar19 >> 0x10" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[1]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 8)" ( (binary_expression "(uint)iVar19 >> 8" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[2]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_class" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x18)" ( (binary_expression "(uint)iVar17 >> 0x18" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10)" (field_expression "in_stack_ffffffa0->e_ident_data" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x10)" ( (binary_expression "(uint)iVar17 >> 0x10" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8)" (field_expression "in_stack_ffffffa0->e_ident_version" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 8)" ( (binary_expression "(uint)iVar17 >> 8" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_osabi = (char)iVar17;" (assignment_expression "in_stack_ffffffa0->e_ident_osabi = (char)iVar17" (field_expression "in_stack_ffffffa0->e_ident_osabi" identifier -> field_identifier) = (cast_expression "(char)iVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_abiversion" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 0x18)" ( (binary_expression "(uint)iVar26 >> 0x18" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[0]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 0x10)" ( (binary_expression "(uint)iVar26 >> 0x10" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[1]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 8)" ( (binary_expression "(uint)iVar26 >> 8" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;" (assignment_expression "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26" (subscript_expression "in_stack_ffffffa0->e_ident_pad[2]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;" (assignment_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18" (pointer_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3)" * (cast_expression "(int *)(in_stack_ffffffa0->e_ident_pad + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_ffffffa0->e_ident_pad + 3)" ( (binary_expression "in_stack_ffffffa0->e_ident_pad + 3" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);" (assignment_expression "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18)" (field_expression "local_5c->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)(uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);" (assignment_expression "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10)" (subscript_expression "local_5c->e_ident_magic_str[0]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);" (assignment_expression "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8)" (subscript_expression "local_5c->e_ident_magic_str[1]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "local_5c->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "local_5c->e_ident_magic_str[2]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (return_statement "return (Elf32_Ehdr *)0x1;" return (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint __gmpn_hgcd_appr(mp_ptr ap,mp_ptr bp,mp_size_t n,hgcd_matrix *M,mp_ptr tp)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  char *pcVar8;\n  int iVar9;\n  Elf32_Ehdr *pEVar10;\n  Elf32_Ehdr *M_00;\n  uint uVar11;\n  Elf32_Ehdr *tp_00;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  Elf32_Ehdr *pEVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  Elf32_Ehdr *pEVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  undefined *puVar22;\n  int iVar23;\n  int iVar24;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  uint *puStack_5c;\n  hgcd_matrix1 M1;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if (n < 3) {\n    iVar21 = 0;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    pEVar13 = (Elf32_Ehdr *)M;\n  }\n  else {\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pcVar8 = pcVar8 + -4;\n    n = (mp_size_t)pEVar3;\n    iVar24 = 0;\n    if (pEVar13 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);\n    if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  iVar21 = 1;\n  iVar23 = iVar24;\n  if (n < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar20 != uVar12) {\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = (Elf32_Ehdr *)bp;\n  if (iVar24 == 0) {\nLAB_00058924:\n    puStack_5c = tp;\n    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }\nLAB_00058820:\n  if (pEVar10 == *(Elf32_Ehdr **)puVar22) {\n    return iVar21;\n  }\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)) {\n    return 0;\n  }\n  if ((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))) {\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    iVar23 = 0;\n    iVar24 = 1;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) goto LAB_00058c00;\n  }\n  else {\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }\n  while (pEVar10 != tp_00) {\n    if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    if (pEVar10 < (Elf32_Ehdr *)0x2) break;\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }\n    puVar16 = puVar16 + iVar9;\n    iVar24 = iVar24 + iVar15;\n    uVar19 = (uint)bVar2;\n    if (pEVar10 == tp_00) break;\nLAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));\n    if (tp_00 < (Elf32_Ehdr *)0x2) break;\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar9 = uVar19 * 8;\n    if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar24;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23;\n  *(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16;\n  *puStack_5c = uVar19;\n  return 1;\n}\n\n" comment (function_definition "int __gmpn_hgcd_appr(mp_ptr ap,mp_ptr bp,mp_size_t n,hgcd_matrix *M,mp_ptr tp)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  char *pcVar8;\n  int iVar9;\n  Elf32_Ehdr *pEVar10;\n  Elf32_Ehdr *M_00;\n  uint uVar11;\n  Elf32_Ehdr *tp_00;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  Elf32_Ehdr *pEVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  Elf32_Ehdr *pEVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  undefined *puVar22;\n  int iVar23;\n  int iVar24;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  uint *puStack_5c;\n  hgcd_matrix1 M1;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if (n < 3) {\n    iVar21 = 0;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    pEVar13 = (Elf32_Ehdr *)M;\n  }\n  else {\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pcVar8 = pcVar8 + -4;\n    n = (mp_size_t)pEVar3;\n    iVar24 = 0;\n    if (pEVar13 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);\n    if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  iVar21 = 1;\n  iVar23 = iVar24;\n  if (n < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar20 != uVar12) {\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = (Elf32_Ehdr *)bp;\n  if (iVar24 == 0) {\nLAB_00058924:\n    puStack_5c = tp;\n    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }\nLAB_00058820:\n  if (pEVar10 == *(Elf32_Ehdr **)puVar22) {\n    return iVar21;\n  }\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)) {\n    return 0;\n  }\n  if ((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))) {\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    iVar23 = 0;\n    iVar24 = 1;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) goto LAB_00058c00;\n  }\n  else {\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }\n  while (pEVar10 != tp_00) {\n    if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    if (pEVar10 < (Elf32_Ehdr *)0x2) break;\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }\n    puVar16 = puVar16 + iVar9;\n    iVar24 = iVar24 + iVar15;\n    uVar19 = (uint)bVar2;\n    if (pEVar10 == tp_00) break;\nLAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));\n    if (tp_00 < (Elf32_Ehdr *)0x2) break;\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar9 = uVar19 * 8;\n    if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar24;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23;\n  *(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16;\n  *puStack_5c = uVar19;\n  return 1;\n}" primitive_type (function_declarator "__gmpn_hgcd_appr(mp_ptr ap,mp_ptr bp,mp_size_t n,hgcd_matrix *M,mp_ptr tp)" identifier (parameter_list "(mp_ptr ap,mp_ptr bp,mp_size_t n,hgcd_matrix *M,mp_ptr tp)" ( (parameter_declaration "mp_ptr ap" type_identifier identifier) , (parameter_declaration "mp_ptr bp" type_identifier identifier) , (parameter_declaration "mp_size_t n" type_identifier identifier) , (parameter_declaration "hgcd_matrix *M" type_identifier (pointer_declarator "*M" * identifier)) , (parameter_declaration "mp_ptr tp" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  char *pcVar8;\n  int iVar9;\n  Elf32_Ehdr *pEVar10;\n  Elf32_Ehdr *M_00;\n  uint uVar11;\n  Elf32_Ehdr *tp_00;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  Elf32_Ehdr *pEVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  Elf32_Ehdr *pEVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  undefined *puVar22;\n  int iVar23;\n  int iVar24;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  uint *puStack_5c;\n  hgcd_matrix1 M1;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if (n < 3) {\n    iVar21 = 0;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    pEVar13 = (Elf32_Ehdr *)M;\n  }\n  else {\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pcVar8 = pcVar8 + -4;\n    n = (mp_size_t)pEVar3;\n    iVar24 = 0;\n    if (pEVar13 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);\n    if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  iVar21 = 1;\n  iVar23 = iVar24;\n  if (n < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar20 != uVar12) {\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = (Elf32_Ehdr *)bp;\n  if (iVar24 == 0) {\nLAB_00058924:\n    puStack_5c = tp;\n    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }\nLAB_00058820:\n  if (pEVar10 == *(Elf32_Ehdr **)puVar22) {\n    return iVar21;\n  }\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)) {\n    return 0;\n  }\n  if ((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))) {\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    iVar23 = 0;\n    iVar24 = 1;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) goto LAB_00058c00;\n  }\n  else {\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }\n  while (pEVar10 != tp_00) {\n    if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    if (pEVar10 < (Elf32_Ehdr *)0x2) break;\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }\n    puVar16 = puVar16 + iVar9;\n    iVar24 = iVar24 + iVar15;\n    uVar19 = (uint)bVar2;\n    if (pEVar10 == tp_00) break;\nLAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));\n    if (tp_00 < (Elf32_Ehdr *)0x2) break;\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar9 = uVar19 * 8;\n    if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar24;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23;\n  *(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16;\n  *puStack_5c = uVar19;\n  return 1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "Elf32_Ehdr *M_00;" type_identifier (pointer_declarator "*M_00" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "Elf32_Ehdr *tp_00;" type_identifier (pointer_declarator "*tp_00" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar13;" type_identifier (pointer_declarator "*pEVar13" * identifier) ;) (declaration "Elf32_Ehdr *pEVar14;" type_identifier (pointer_declarator "*pEVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar18;" type_identifier (pointer_declarator "*pEVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_stack_ffffffa0;" type_identifier (pointer_declarator "*in_stack_ffffffa0" * identifier) ;) (declaration "uint *puStack_5c;" type_identifier (pointer_declarator "*puStack_5c" * identifier) ;) (declaration "hgcd_matrix1 M1;" type_identifier identifier ;) (expression_statement "puVar22 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar22 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;" (assignment_expression "pEVar10 = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" * (cast_expression "(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (n < 3) {\n    iVar21 = 0;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    pEVar13 = (Elf32_Ehdr *)M;\n  }\n  else {\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }" if (parenthesized_expression "(n < 3)" ( (binary_expression "n < 3" identifier < number_literal) )) (compound_statement "{\n    iVar21 = 0;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    pEVar13 = (Elf32_Ehdr *)M;\n  }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "M_00 = (Elf32_Ehdr *)bp;" (assignment_expression "M_00 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)n;" (assignment_expression "tp_00 = (Elf32_Ehdr *)n" identifier = (cast_expression "(Elf32_Ehdr *)n" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar13 = (Elf32_Ehdr *)M;" (assignment_expression "pEVar13 = (Elf32_Ehdr *)M" identifier = (cast_expression "(Elf32_Ehdr *)M" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }" else (compound_statement "{\n    iVar23 = n >> 1;\n    pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);\n    if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);\n    iVar24 = n;\n    iVar21 = iVar17;\n    if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }\n    while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }\n    puStack_5c = tp;\n    if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }\n  }" { (expression_statement "iVar23 = n >> 1;" (assignment_expression "iVar23 = n >> 1" identifier = (binary_expression "n >> 1" identifier >> number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)(iVar23 + 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)(iVar23 + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar23 + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )))) ;) (if_statement "if (n < 400) {\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" if (parenthesized_expression "(n < 400)" ( (binary_expression "n < 400" identifier < number_literal) )) (compound_statement "{\n      iVar21 = 0;\n      iVar23 = 0;\nLAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n      iVar24 = iVar23;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000586e4:\n      M_00 = (Elf32_Ehdr *)ap;" statement_identifier : (expression_statement "M_00 = (Elf32_Ehdr *)ap;" (assignment_expression "M_00 = (Elf32_Ehdr *)ap" identifier = (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "tp_00 = (Elf32_Ehdr *)bp;" (assignment_expression "tp_00 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar13 = pEVar18;" (assignment_expression "pEVar13 = pEVar18" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = (Elf32_Ehdr *)M;" (assignment_expression "in_stack_ffffffa0 = (Elf32_Ehdr *)M" identifier = (cast_expression "(Elf32_Ehdr *)M" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(n)" ( identifier ))))) ;) (expression_statement "iVar24 = iVar23;" (assignment_expression "iVar24 = iVar23" identifier = identifier) ;) (if_statement "if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }" if (parenthesized_expression "(pEVar3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        tp_00 = (Elf32_Ehdr *)(iVar23 * 2);\n        n = (mp_size_t)pEVar3;\n        if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }\n        goto LAB_00058864;\n      }" { (expression_statement "tp_00 = (Elf32_Ehdr *)(iVar23 * 2);" (assignment_expression "tp_00 = (Elf32_Ehdr *)(iVar23 * 2)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar23 * 2)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 * 2)" ( (binary_expression "iVar23 * 2" identifier * number_literal) )))) ;) (expression_statement "n = (mp_size_t)pEVar3;" (assignment_expression "n = (mp_size_t)pEVar3" identifier = (cast_expression "(mp_size_t)pEVar3" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (if_statement "if (tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)) {\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }" if (parenthesized_expression "(tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6))" ( (binary_expression "tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar18 << 6)" (binary_expression "tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1" (binary_expression "tp_00->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20" (field_expression "tp_00->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar3->e_ident_magic_str * 0x20" (cast_expression "(int)pEVar3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + number_literal) <= (cast_expression "(undefined1 *)((int)pEVar18 << 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 << 6)" ( (binary_expression "(int)pEVar18 << 6" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (compound_statement "{\n          if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }\n        }" { (if_statement "if (iVar23 == 0) {\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;\n            n = (mp_size_t)pEVar14;\n            if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }" { (expression_statement "pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str;" (assignment_expression "pEVar14 = (Elf32_Ehdr *)pEVar18->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar18->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar18->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "n = (mp_size_t)pEVar14;" (assignment_expression "n = (mp_size_t)pEVar14" identifier = (cast_expression "(mp_size_t)pEVar14" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (if_statement "if (pEVar14 != pEVar3) {\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" if (parenthesized_expression "(pEVar14 != pEVar3)" ( (binary_expression "pEVar14 != pEVar3" identifier != identifier) )) (compound_statement "{\n              pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));\n              M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);\n              pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);\n              pEVar7 = pEVar13;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar18))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + (-1 - (int)pEVar18))" ( (binary_expression "(int)pEVar3 + (-1 - (int)pEVar18)" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)pEVar18)" ( (binary_expression "-1 - (int)pEVar18" number_literal - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8);" (assignment_expression "M_00 = (Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8)" ( (binary_expression "(int)pEVar3[0x13b13b1].e_ident_pad * 4 + 8" (binary_expression "(int)pEVar3[0x13b13b1].e_ident_pad * 4" (cast_expression "(int)pEVar3[0x13b13b1].e_ident_pad" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar3[0x13b13b1].e_ident_pad" (subscript_expression "pEVar3[0x13b13b1]" identifier [ number_literal ]) . field_identifier)) * number_literal) + number_literal) )))) ;) (expression_statement "pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10);" (assignment_expression "pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10)" identifier = (binary_expression "M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10)" (field_expression "M_00->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(((Elf32_Ehdr *)ap)->e_ident_pad + -10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((Elf32_Ehdr *)ap)->e_ident_pad + -10)" ( (binary_expression "((Elf32_Ehdr *)ap)->e_ident_pad + -10" (field_expression "((Elf32_Ehdr *)ap)->e_ident_pad" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) ))))) ;) (expression_statement "pEVar7 = pEVar13;" (assignment_expression "pEVar7 = pEVar13" identifier = identifier) ;) (do_statement "do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }\n                pcVar8 = pcVar8 + -4;\n                n = (mp_size_t)pEVar3;\n                iVar24 = 0;\n              }" { (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar7[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar7[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar7[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar7[-1].e_shstrndx" & (field_expression "pEVar7[-1].e_shstrndx" (subscript_expression "pEVar7[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (*(int *)pcVar8 != 0) {\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }" if (parenthesized_expression "(*(int *)pcVar8 != 0)" ( (binary_expression "*(int *)pcVar8 != 0" (pointer_expression "*(int *)pcVar8" * (cast_expression "(int *)pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n                  pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);\n                  goto LAB_00058780;\n                }" { (expression_statement "pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10);" (assignment_expression "pcVar8 = M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10)" identifier = (binary_expression "M_00->e_ident_magic_str + (int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10)" (field_expression "M_00->e_ident_magic_str" identifier -> field_identifier) + (cast_expression "(int)(((Elf32_Ehdr *)bp)->e_ident_pad + -10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((Elf32_Ehdr *)bp)->e_ident_pad + -10)" ( (binary_expression "((Elf32_Ehdr *)bp)->e_ident_pad + -10" (field_expression "((Elf32_Ehdr *)bp)->e_ident_pad" (parenthesized_expression "((Elf32_Ehdr *)bp)" ( (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00058780;" goto statement_identifier ;) })) (expression_statement "pcVar8 = pcVar8 + -4;" (assignment_expression "pcVar8 = pcVar8 + -4" identifier = (binary_expression "pcVar8 + -4" identifier + number_literal)) ;) (expression_statement "n = (mp_size_t)pEVar3;" (assignment_expression "n = (mp_size_t)pEVar3" identifier = (cast_expression "(mp_size_t)pEVar3" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) }) while (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)) )) ;) })) }) (else_clause "else {\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }" else (compound_statement "{\n            iVar24 = iVar23 + -1;\n            pEVar14 = pEVar18;\nLAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;\n            ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);\n            bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);\n            pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);\n            n = (mp_size_t)((int)pEVar3 - uVar19);\n          }" { (expression_statement "iVar24 = iVar23 + -1;" (assignment_expression "iVar24 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ;) (expression_statement "pEVar14 = pEVar18;" (assignment_expression "pEVar14 = pEVar18" identifier = identifier) ;) (labeled_statement "LAB_00058978:\n            uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;" statement_identifier : (expression_statement "uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5;" (assignment_expression "uVar19 = (uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5" identifier = (binary_expression "(uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2) >> 5" (call_expression "(uint)(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2)" ( (binary_expression "((int)pEVar18 * 2 - (int)pEVar3) * 0x20 + iVar23 * -2" (binary_expression "((int)pEVar18 * 2 - (int)pEVar3) * 0x20" (parenthesized_expression "((int)pEVar18 * 2 - (int)pEVar3)" ( (binary_expression "(int)pEVar18 * 2 - (int)pEVar3" (binary_expression "(int)pEVar18 * 2" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (binary_expression "iVar23 * -2" identifier * number_literal)) ))) >> number_literal)) ;)) (expression_statement "ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1);" (assignment_expression "ap = (mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1)" identifier = (call_expression "(mp_ptr)(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4 + -1" (binary_expression "((Elf32_Ehdr *)ap)->e_ident_magic_str + uVar19 * 4" (field_expression "((Elf32_Ehdr *)ap)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1);" (assignment_expression "bp = (mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1)" identifier = (call_expression "(mp_ptr)(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1)" ( (binary_expression "((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4 + -1" (binary_expression "((Elf32_Ehdr *)bp)->e_ident_magic_str + uVar19 * 4" (field_expression "((Elf32_Ehdr *)bp)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)bp)" ( (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((int)pEVar14 - uVar19)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar14 - uVar19)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar14 - uVar19)" ( (binary_expression "(int)pEVar14 - uVar19" (cast_expression "(int)pEVar14" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "n = (mp_size_t)((int)pEVar3 - uVar19);" (assignment_expression "n = (mp_size_t)((int)pEVar3 - uVar19)" identifier = (call_expression "(mp_size_t)((int)pEVar3 - uVar19)" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "((int)pEVar3 - uVar19)" ( (binary_expression "(int)pEVar3 - uVar19" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) }))) })) (goto_statement "goto LAB_00058864;" goto statement_identifier ;) })) (goto_statement "goto LAB_00058870;" goto statement_identifier ;) })) (expression_statement "iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)(M,ap,bp,n,iVar23)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_reduce_0009d110" * (cast_expression "(code *)PTR___gmpn_hgcd_reduce_0009d110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(M,ap,bp,n,iVar23)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar24 = n;" (assignment_expression "iVar24 = n" identifier = identifier) ;) (expression_statement "iVar21 = iVar17;" (assignment_expression "iVar21 = iVar17" identifier = identifier) ;) (if_statement "if (iVar17 != 0) {\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar21 = 1;\n      iVar24 = iVar17;\n    }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = iVar17;" (assignment_expression "iVar24 = iVar17" identifier = identifier) ;) })) (while_statement "while ((n * 3 >> 2) + 1 < iVar24) {\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }" while (parenthesized_expression "((n * 3 >> 2) + 1 < iVar24)" ( (binary_expression "(n * 3 >> 2) + 1 < iVar24" (binary_expression "(n * 3 >> 2) + 1" (parenthesized_expression "(n * 3 >> 2)" ( (binary_expression "n * 3 >> 2" (binary_expression "n * 3" identifier * number_literal) >> number_literal) )) + number_literal) < identifier) )) (compound_statement "{\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) goto LAB_00058820;\n      iVar21 = 1;\n    }" { (expression_statement "puStack_5c = tp;" (assignment_expression "puStack_5c = tp" identifier = identifier) ;) (expression_statement "M_00 = (Elf32_Ehdr *)ap;" (assignment_expression "M_00 = (Elf32_Ehdr *)ap" identifier = (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)bp;" (assignment_expression "tp_00 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar13 = pEVar18;" (assignment_expression "pEVar13 = pEVar18" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = (Elf32_Ehdr *)M;" (assignment_expression "in_stack_ffffffa0 = (Elf32_Ehdr *)M" identifier = (cast_expression "(Elf32_Ehdr *)M" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);" (assignment_expression "iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar24)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00058820;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00058820;" goto statement_identifier ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) })) (expression_statement "puStack_5c = tp;" (assignment_expression "puStack_5c = tp" identifier = identifier) ;) (if_statement "if (iVar23 + 3 < iVar24) {\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }" if (parenthesized_expression "(iVar23 + 3 < iVar24)" ( (binary_expression "iVar23 + 3 < iVar24" (binary_expression "iVar23 + 3" identifier + number_literal) < identifier) )) (compound_statement "{\n      M_00 = (Elf32_Ehdr *)&M1;\n      iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;\n      iVar23 = iVar24 - iVar17;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);\n      tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);\n      pEVar13 = M_00;\n      in_stack_ffffffa0 = tp_00;\n      iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }\n    }" { (expression_statement "M_00 = (Elf32_Ehdr *)&M1;" (assignment_expression "M_00 = (Elf32_Ehdr *)&M1" identifier = (cast_expression "(Elf32_Ehdr *)&M1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&M1" & identifier))) ;) (expression_statement "iVar17 = ((int)pEVar18 * 2 - iVar24) + 1;" (assignment_expression "iVar17 = ((int)pEVar18 * 2 - iVar24) + 1" identifier = (binary_expression "((int)pEVar18 * 2 - iVar24) + 1" (parenthesized_expression "((int)pEVar18 * 2 - iVar24)" ( (binary_expression "(int)pEVar18 * 2 - iVar24" (binary_expression "(int)pEVar18 * 2" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - identifier) )) + number_literal)) ;) (expression_statement "iVar23 = iVar24 - iVar17;" (assignment_expression "iVar23 = iVar24 - iVar17" identifier = (binary_expression "iVar24 - iVar17" identifier - identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(M_00,iVar23,tp)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(M_00,iVar23,tp)" ( identifier , identifier , identifier ))) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4);" (assignment_expression "tp_00 = (Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4)" identifier = (cast_expression "(Elf32_Ehdr *)(tp + ((iVar23 + 1) / 2 + 1) * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(tp + ((iVar23 + 1) / 2 + 1) * 4)" ( (binary_expression "tp + ((iVar23 + 1) / 2 + 1) * 4" identifier + (binary_expression "((iVar23 + 1) / 2 + 1) * 4" (parenthesized_expression "((iVar23 + 1) / 2 + 1)" ( (binary_expression "(iVar23 + 1) / 2 + 1" (binary_expression "(iVar23 + 1) / 2" (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )) / number_literal) + number_literal) )) * number_literal)) )))) ;) (expression_statement "pEVar13 = M_00;" (assignment_expression "pEVar13 = M_00" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = tp_00;" (assignment_expression "in_stack_ffffffa0 = tp_00" identifier = identifier) ;) (expression_statement "iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00);" (assignment_expression "iVar23 = __gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00)" identifier = (call_expression "__gmpn_hgcd_appr(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00)" identifier (argument_list "(ap + iVar17,bp + iVar17,iVar23,(hgcd_matrix *)M_00,(mp_ptr)tp_00)" ( (binary_expression "ap + iVar17" identifier + identifier) , (binary_expression "bp + iVar17" identifier + identifier) , identifier , (cast_expression "(hgcd_matrix *)M_00" ( (type_descriptor "hgcd_matrix *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(mp_ptr)tp_00" ( (type_descriptor "mp_ptr" type_identifier) ) identifier) )))) ;) (if_statement "if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);\n        iVar21 = 1;\n        goto LAB_00058820;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(M)" ( identifier ))) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = (Elf32_Ehdr *)bp;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);\n      if (iVar24 == 0) break;\n      iVar21 = 1;\n    }" { (expression_statement "M_00 = (Elf32_Ehdr *)ap;" (assignment_expression "M_00 = (Elf32_Ehdr *)ap" identifier = (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)bp;" (assignment_expression "tp_00 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar13 = pEVar18;" (assignment_expression "pEVar13 = pEVar18" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = (Elf32_Ehdr *)M;" (assignment_expression "in_stack_ffffffa0 = (Elf32_Ehdr *)M" identifier = (cast_expression "(Elf32_Ehdr *)M" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24);" (assignment_expression "iVar24 = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(iVar24)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar24)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) break;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) })) }))) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) (while_statement "while( true ) {\n    pcVar8 = pcVar8 + -4;\n    n = (mp_size_t)pEVar3;\n    iVar24 = 0;\n    if (pEVar13 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);\n    if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pcVar8 = pcVar8 + -4;\n    n = (mp_size_t)pEVar3;\n    iVar24 = 0;\n    if (pEVar13 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);\n    if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" { (expression_statement "pcVar8 = pcVar8 + -4;" (assignment_expression "pcVar8 = pcVar8 + -4" identifier = (binary_expression "pcVar8 + -4" identifier + number_literal)) ;) (expression_statement "n = (mp_size_t)pEVar3;" (assignment_expression "n = (mp_size_t)pEVar3" identifier = (cast_expression "(mp_size_t)pEVar3" ( (type_descriptor "mp_size_t" type_identifier) ) identifier)) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (if_statement "if (pEVar13 == (Elf32_Ehdr *)0x0) break;" if (parenthesized_expression "(pEVar13 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar13 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058780:\n    pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar13[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar13[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar13[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar13[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar13[-1].e_shstrndx" & (field_expression "pEVar13[-1].e_shstrndx" (subscript_expression "pEVar13[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if (*(int *)pcVar8 != 0) {\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }" if (parenthesized_expression "(*(int *)pcVar8 != 0)" ( (binary_expression "*(int *)pcVar8 != 0" (pointer_expression "*(int *)pcVar8" * (cast_expression "(int *)pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      iVar24 = 0x1f;\n      goto LAB_00058978;\n    }" { (expression_statement "iVar24 = 0x1f;" (assignment_expression "iVar24 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00058978;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00058864:\n  iVar21 = 1;" statement_identifier : (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;)) (expression_statement "iVar23 = iVar24;" (assignment_expression "iVar23 = iVar24" identifier = identifier) ;) (if_statement "if (n < 3) goto LAB_00058870;" if (parenthesized_expression "(n < 3)" ( (binary_expression "n < 3" identifier < number_literal) )) (goto_statement "goto LAB_00058870;" goto statement_identifier ;)) (goto_statement "goto LAB_000586e4;" goto statement_identifier ;) (labeled_statement "LAB_00058c8c:\n  if (uVar20 != uVar12) {\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" statement_identifier : (if_statement "if (uVar20 != uVar12) {\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" if (parenthesized_expression "(uVar20 != uVar12)" ( (binary_expression "uVar20 != uVar12" identifier != identifier) )) (compound_statement "{\n    uVar12 = uVar12 - uVar20;\n    if (uVar12 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar19 * 8;\n    if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar20 == uVar12;\n    uVar20 = uVar20 - uVar12;\n    if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;\n    if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" { (expression_statement "uVar12 = uVar12 - uVar20;" (assignment_expression "uVar12 = uVar12 - uVar20" identifier = (binary_expression "uVar12 - uVar20" identifier - identifier)) ;) (if_statement "if (uVar12 < 0x20000) goto LAB_00058b84;" if (parenthesized_expression "(uVar12 < 0x20000)" ( (binary_expression "uVar12 < 0x20000" identifier < number_literal) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (expression_statement "iVar9 = uVar19 * 8;" (assignment_expression "iVar9 = uVar19 * 8" identifier = (binary_expression "uVar19 * 8" identifier * number_literal)) ;) (if_statement "if (uVar20 < uVar12) {\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" if (parenthesized_expression "(uVar20 < uVar12)" ( (binary_expression "uVar20 < uVar12" identifier < identifier) )) (compound_statement "{\n      iVar15 = 0;\n      uVar19 = uVar20;\n      if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }\n      if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar17 = iVar24 * uVar5 + iVar17;\n      iVar23 = iVar23 + (int)puVar16 * uVar5;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar20;" (assignment_expression "uVar19 = uVar20" identifier = identifier) ;) (if_statement "if ((int)uVar12 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }" if (parenthesized_expression "((int)uVar12 < 0)" ( (binary_expression "(int)uVar12 < 0" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar15 = 1;\n        for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);\n      }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar19; uVar19 = uVar19 << 1) {\n          iVar15 = iVar15 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar19 = uVar19 << 1" identifier = (binary_expression "uVar19 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar15 = iVar15 + 1;\n        }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        } while (iVar15 != 0);" do (compound_statement "{\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }\n          uVar19 = uVar19 >> 1;\n        }" { (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar19 <= uVar12) {\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar19 <= uVar12)" ( (binary_expression "uVar19 <= uVar12" identifier <= identifier) )) (compound_statement "{\n            uVar12 = uVar12 - uVar19;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar12 = uVar12 - uVar19;" (assignment_expression "uVar12 = uVar12 - uVar19" identifier = (binary_expression "uVar12 - uVar19" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar19 = uVar19 >> 1;" (assignment_expression "uVar19 = uVar19 >> 1" identifier = (binary_expression "uVar19 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);\n        uVar5 = 0;\n        uVar11 = uVar11 & 0x7fffffff;\n        do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);\n      }" { (do_statement "do {\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        } while (uVar19 <= uVar12);" do (compound_statement "{\n          uVar11 = uVar19;\n          uVar19 = uVar11 << 1;\n          iVar15 = iVar15 + 1;\n        }" { (expression_statement "uVar11 = uVar19;" (assignment_expression "uVar11 = uVar19" identifier = identifier) ;) (expression_statement "uVar19 = uVar11 << 1;" (assignment_expression "uVar19 = uVar11 << 1" identifier = (binary_expression "uVar11 << 1" identifier << number_literal)) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar19 <= uVar12)" ( (binary_expression "uVar19 <= uVar12" identifier <= identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = uVar11 & 0x7fffffff;" (assignment_expression "uVar11 = uVar11 & 0x7fffffff" identifier = (binary_expression "uVar11 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        } while (iVar15 != 0);" do (compound_statement "{\n          iVar15 = iVar15 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }\n          uVar11 = uVar11 >> 1;\n        }" { (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar11 <= uVar12) {\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar11 <= uVar12)" ( (binary_expression "uVar11 <= uVar12" identifier <= identifier) )) (compound_statement "{\n            uVar12 = uVar12 - uVar11;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar12 = uVar12 - uVar11;" (assignment_expression "uVar12 = uVar12 - uVar11" identifier = (binary_expression "uVar12 - uVar11" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar11 = uVar11 >> 1;" (assignment_expression "uVar11 = uVar11 >> 1" identifier = (binary_expression "uVar11 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (uVar12 < 0x20000) {\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar12 < 0x20000)" ( (binary_expression "uVar12 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar17 = iVar24 * uVar5 + iVar17;\n        iVar23 = iVar23 + (int)puVar16 * uVar5;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar17 = iVar24 * uVar5 + iVar17;" (assignment_expression "iVar17 = iVar24 * uVar5 + iVar17" identifier = (binary_expression "iVar24 * uVar5 + iVar17" (binary_expression "iVar24 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar23 = iVar23 + (int)puVar16 * uVar5;" (assignment_expression "iVar23 = iVar23 + (int)puVar16 * uVar5" identifier = (binary_expression "iVar23 + (int)puVar16 * uVar5" identifier + (binary_expression "(int)puVar16 * uVar5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar5 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar24 * uVar5 + iVar17;" (assignment_expression "iVar17 = iVar24 * uVar5 + iVar17" identifier = (binary_expression "iVar24 * uVar5 + iVar17" (binary_expression "iVar24 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar23 = iVar23 + (int)puVar16 * uVar5;" (assignment_expression "iVar23 = iVar23 + (int)puVar16 * uVar5" identifier = (binary_expression "iVar23 + (int)puVar16 * uVar5" identifier + (binary_expression "(int)puVar16 * uVar5" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) * identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar5 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" { (expression_statement "iVar17 = iVar17 + iVar24;" (assignment_expression "iVar17 = iVar17 + iVar24" identifier = (binary_expression "iVar17 + iVar24" identifier + identifier)) ;) (expression_statement "iVar23 = iVar23 + (int)puVar16;" (assignment_expression "iVar23 = iVar23 + (int)puVar16" identifier = (binary_expression "iVar23 + (int)puVar16" identifier + (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + 1)" ( (binary_expression "iVar21 + iVar9 + 1" (binary_expression "iVar21 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) (labeled_statement "LAB_00058c5c:\n    bVar1 = uVar20 == uVar12;" statement_identifier : (expression_statement "bVar1 = uVar20 == uVar12;" (assignment_expression "bVar1 = uVar20 == uVar12" identifier = (binary_expression "uVar20 == uVar12" identifier == identifier)) ;)) (expression_statement "uVar20 = uVar20 - uVar12;" (assignment_expression "uVar20 = uVar20 - uVar12" identifier = (binary_expression "uVar20 - uVar12" identifier - identifier)) ;) (if_statement "if ((bVar1) || (uVar20 < 0x20000)) goto LAB_00058b84;" if (parenthesized_expression "((bVar1) || (uVar20 < 0x20000))" ( (binary_expression "(bVar1) || (uVar20 < 0x20000)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar20 < 0x20000)" ( (binary_expression "uVar20 < 0x20000" identifier < number_literal) ))) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (if_statement "if (uVar12 < uVar20) {\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }\n    else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }" if (parenthesized_expression "(uVar12 < uVar20)" ( (binary_expression "uVar12 < uVar20" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      uVar5 = uVar12;\n      if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }\n      uVar11 = uVar11 + 1;\n      iVar24 = iVar17 * uVar11 + iVar24;\n      puVar16 = puVar16 + iVar23 * uVar11;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" identifier = identifier) ;) (if_statement "if ((int)uVar20 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)uVar20 < 0)" ( (binary_expression "(int)uVar20 < 0" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar11 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 << 1;" (assignment_expression "uVar11 = uVar11 << 1" identifier = (binary_expression "uVar11 << 1" identifier << number_literal)) ;) (if_statement "if (uVar5 <= uVar20) {\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }" if (parenthesized_expression "(uVar5 <= uVar20)" ( (binary_expression "uVar5 <= uVar20" identifier <= identifier) )) (compound_statement "{\n            uVar20 = uVar20 - uVar5;\n            uVar11 = uVar11 | 1;\n          }" { (expression_statement "uVar20 = uVar20 - uVar5;" (assignment_expression "uVar20 = uVar20 - uVar5" identifier = (binary_expression "uVar20 - uVar5" identifier - identifier)) ;) (expression_statement "uVar11 = uVar11 | 1;" (assignment_expression "uVar11 = uVar11 | 1" identifier = (binary_expression "uVar11 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);\n        uVar11 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar20);" do (compound_statement "{\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (expression_statement "uVar5 = uVar6 << 1;" (assignment_expression "uVar5 = uVar6 << 1" identifier = (binary_expression "uVar6 << 1" identifier << number_literal)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 <= uVar20)" ( (binary_expression "uVar5 <= uVar20" identifier <= identifier) )) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar6 & 0x7fffffff;" (assignment_expression "uVar6 = uVar6 & 0x7fffffff" identifier = (binary_expression "uVar6 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar11 = uVar11 << 1;\n          if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 << 1;" (assignment_expression "uVar11 = uVar11 << 1" identifier = (binary_expression "uVar11 << 1" identifier << number_literal)) ;) (if_statement "if (uVar6 <= uVar20) {\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }" if (parenthesized_expression "(uVar6 <= uVar20)" ( (binary_expression "uVar6 <= uVar20" identifier <= identifier) )) (compound_statement "{\n            uVar20 = uVar20 - uVar6;\n            uVar11 = uVar11 | 1;\n          }" { (expression_statement "uVar20 = uVar20 - uVar6;" (assignment_expression "uVar20 = uVar20 - uVar6" identifier = (binary_expression "uVar20 - uVar6" identifier - identifier)) ;) (expression_statement "uVar11 = uVar11 | 1;" (assignment_expression "uVar11 = uVar11 | 1" identifier = (binary_expression "uVar11 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar6 = uVar6 >> 1;" (assignment_expression "uVar6 = uVar6 >> 1" identifier = (binary_expression "uVar6 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar19 * 8 + 4;" (assignment_expression "iVar9 = uVar19 * 8 + 4" identifier = (binary_expression "uVar19 * 8 + 4" (binary_expression "uVar19 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (uVar20 < 0x20000) {\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar20 < 0x20000)" ( (binary_expression "uVar20 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar24 = iVar17 * uVar11 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar11;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar24 = iVar17 * uVar11 + iVar24;" (assignment_expression "iVar24 = iVar17 * uVar11 + iVar24" identifier = (binary_expression "iVar17 * uVar11 + iVar24" (binary_expression "iVar17 * uVar11" identifier * identifier) + identifier)) ;) (expression_statement "puVar16 = puVar16 + iVar23 * uVar11;" (assignment_expression "puVar16 = puVar16 + iVar23 * uVar11" identifier = (binary_expression "puVar16 + iVar23 * uVar11" identifier + (binary_expression "iVar23 * uVar11" identifier * identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar11 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar11 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar11 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar11 & 3)" ( (binary_expression "uVar11 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar17 * uVar11 + iVar24;" (assignment_expression "iVar24 = iVar17 * uVar11 + iVar24" identifier = (binary_expression "iVar17 * uVar11 + iVar24" (binary_expression "iVar17 * uVar11" identifier * identifier) + identifier)) ;) (expression_statement "puVar16 = puVar16 + iVar23 * uVar11;" (assignment_expression "puVar16 = puVar16 + iVar23 * uVar11" identifier = (binary_expression "puVar16 + iVar23 * uVar11" identifier + (binary_expression "iVar23 * uVar11" identifier * identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar11 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar11 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar11 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar11 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar11 & 3)" ( (binary_expression "uVar11 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }" else (compound_statement "{\n      iVar24 = iVar24 + iVar17;\n      puVar16 = puVar16 + iVar23;\n      uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);\n    }" { (expression_statement "iVar24 = iVar24 + iVar17;" (assignment_expression "iVar24 = iVar24 + iVar17" identifier = (binary_expression "iVar24 + iVar17" identifier + identifier)) ;) (expression_statement "puVar16 = puVar16 + iVar23;" (assignment_expression "puVar16 = puVar16 + iVar23" identifier = (binary_expression "puVar16 + iVar23" identifier + identifier)) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5);" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + uVar19 * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar21 + uVar19 * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + uVar19 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 8 + 5)" ( (binary_expression "iVar21 + uVar19 * 8 + 5" (binary_expression "iVar21 + uVar19 * 8" identifier + (binary_expression "uVar19 * 8" identifier * number_literal)) + number_literal) ))))) ;) }))) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) (labeled_statement "LAB_00058870:\n  pEVar3 = (Elf32_Ehdr *)bp;" statement_identifier : (expression_statement "pEVar3 = (Elf32_Ehdr *)bp;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (iVar24 == 0) {\nLAB_00058924:\n    puStack_5c = tp;\n    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00058924:\n    puStack_5c = tp;\n    if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }\n  }" { (labeled_statement "LAB_00058924:\n    puStack_5c = tp;" statement_identifier : (expression_statement "puStack_5c = tp;" (assignment_expression "puStack_5c = tp" identifier = identifier) ;)) (if_statement "if ((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2) {\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }" if (parenthesized_expression "((Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2)" ( (binary_expression "(Elf32_Ehdr *)n == (Elf32_Ehdr *)0x2" (cast_expression "(Elf32_Ehdr *)n" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar18 = (Elf32_Ehdr *)&M1;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;\n      tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;\n      uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;\n      uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;\n      uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;\n      uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar18;\n      iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }\n    }" { (expression_statement "pEVar18 = (Elf32_Ehdr *)&M1;" (assignment_expression "pEVar18 = (Elf32_Ehdr *)&M1" identifier = (cast_expression "(Elf32_Ehdr *)&M1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&M1" & identifier))) ;) (expression_statement "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num;" (assignment_expression "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&pEVar3->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&pEVar3->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pEVar3->e_ident_magic_num" & (field_expression "pEVar3->e_ident_magic_num" identifier -> field_identifier))))) ;) (expression_statement "tp_00 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "tp_00 = *(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 "M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num;" (assignment_expression "M_00 = *(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num" identifier = (pointer_expression "*(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num" * (cast_expression "(Elf32_Ehdr **)&((Elf32_Ehdr *)ap)->e_ident_magic_num" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&((Elf32_Ehdr *)ap)->e_ident_magic_num" & (field_expression "((Elf32_Ehdr *)ap)->e_ident_magic_num" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class;" (assignment_expression "uVar4._0_1_ = ((Elf32_Ehdr *)ap)->e_ident_class" (field_expression "uVar4._0_1_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)ap)->e_ident_class" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;) (expression_statement "uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data;" (assignment_expression "uVar4._1_1_ = ((Elf32_Ehdr *)ap)->e_ident_data" (field_expression "uVar4._1_1_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)ap)->e_ident_data" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;) (expression_statement "uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version;" (assignment_expression "uVar4._2_1_ = ((Elf32_Ehdr *)ap)->e_ident_version" (field_expression "uVar4._2_1_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)ap)->e_ident_version" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;) (expression_statement "uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi;" (assignment_expression "uVar4._3_1_ = ((Elf32_Ehdr *)ap)->e_ident_osabi" (field_expression "uVar4._3_1_" identifier . field_identifier) = (field_expression "((Elf32_Ehdr *)ap)->e_ident_osabi" (parenthesized_expression "((Elf32_Ehdr *)ap)" ( (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;) (expression_statement "in_stack_ffffffa0 = pEVar18;" (assignment_expression "in_stack_ffffffa0 = pEVar18" identifier = identifier) ;) (expression_statement "iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);" (assignment_expression "iVar23 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd2_0009d460" * (cast_expression "(code *)PTR___gmpn_hgcd2_0009d460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (iVar23 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);\n        iVar21 = 1;\n        M_00 = pEVar18;\n        tp_00 = (Elf32_Ehdr *)tp;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(M)" ( identifier ))) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "M_00 = pEVar18;" (assignment_expression "M_00 = pEVar18" identifier = identifier) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)tp;" (assignment_expression "tp_00 = (Elf32_Ehdr *)tp" identifier = (cast_expression "(Elf32_Ehdr *)tp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) }) (else_clause "else {\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }" else (compound_statement "{\n    pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;\n    ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;\n    M_00 = (Elf32_Ehdr *)bp;\n    tp_00 = (Elf32_Ehdr *)n;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);\n    ((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;\n    n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));\n    do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);\n    iVar21 = 1;\n  }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(0x20 - iVar24)" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - iVar24)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - iVar24)" ( (binary_expression "0x20 - iVar24" number_literal - identifier) )))) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(ap,ap,n,pEVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ap,ap,n,pEVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)ap + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)ap + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ap + -0x34)" ( (binary_expression "(int)ap + -0x34" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4;" (assignment_expression "((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx = (short)uVar4" (field_expression "((Elf32_Ehdr *)((int)ap + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)((int)ap + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)ap + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ap + -0x34)" ( (binary_expression "(int)ap + -0x34" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum;" (assignment_expression "ap = (mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum" identifier = (binary_expression "(mp_ptr)&((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum" (parenthesized_expression "(mp_ptr)" ( identifier )) & (field_expression "((Elf32_Ehdr *)((int)ap + -0x34))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)ap + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)ap + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ap + -0x34)" ( (binary_expression "(int)ap + -0x34" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum" & (field_expression "((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)bp + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)bp + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bp + -0x34)" ( (binary_expression "(int)bp + -0x34" (cast_expression "(int)bp" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier)))) ;) (expression_statement "M_00 = (Elf32_Ehdr *)bp;" (assignment_expression "M_00 = (Elf32_Ehdr *)bp" identifier = (cast_expression "(Elf32_Ehdr *)bp" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "tp_00 = (Elf32_Ehdr *)n;" (assignment_expression "tp_00 = (Elf32_Ehdr *)n" identifier = (cast_expression "(Elf32_Ehdr *)n" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(bp)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(bp)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(bp)" ( identifier )))) ;) (expression_statement "((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "((Elf32_Ehdr *)((int)bp + -0x34))->e_shnum" (parenthesized_expression "((Elf32_Ehdr *)((int)bp + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)bp + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bp + -0x34)" ( (binary_expression "(int)bp + -0x34" (cast_expression "(int)bp" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4;" (assignment_expression "((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx = (short)uVar4" (field_expression "((Elf32_Ehdr *)((int)bp + -0x34))->e_shstrndx" (parenthesized_expression "((Elf32_Ehdr *)((int)bp + -0x34))" ( (cast_expression "(Elf32_Ehdr *)((int)bp + -0x34)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bp + -0x34)" ( (binary_expression "(int)bp + -0x34" (cast_expression "(int)bp" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1));" (assignment_expression "n = (mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1))" identifier = (call_expression "(mp_size_t)\n        (((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1))" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "(((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1))" ( (binary_expression "((Elf32_Ehdr *)n)->e_ident_magic_str +\n        ((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1)" (field_expression "((Elf32_Ehdr *)n)->e_ident_magic_str" (parenthesized_expression "((Elf32_Ehdr *)n)" ( (cast_expression "(Elf32_Ehdr *)n" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (parenthesized_expression "((*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1)" ( (binary_expression "(*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0) - 1" (parenthesized_expression "(*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0)" ( (binary_expression "*(int *)((int)ap + n * 2 * 2) != 0 || *(int *)((int)pEVar3 + n * 2 * 2) != 0" (binary_expression "*(int *)((int)ap + n * 2 * 2) != 0" (pointer_expression "*(int *)((int)ap + n * 2 * 2)" * (cast_expression "(int *)((int)ap + n * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ap + n * 2 * 2)" ( (binary_expression "(int)ap + n * 2 * 2" (cast_expression "(int)ap" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "n * 2 * 2" (binary_expression "n * 2" identifier * number_literal) * number_literal)) )))) != number_literal) || (binary_expression "*(int *)((int)pEVar3 + n * 2 * 2) != 0" (pointer_expression "*(int *)((int)pEVar3 + n * 2 * 2)" * (cast_expression "(int *)((int)pEVar3 + n * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + n * 2 * 2)" ( (binary_expression "(int)pEVar3 + n * 2 * 2" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "n * 2 * 2" (binary_expression "n * 2" identifier * number_literal) * number_literal)) )))) != number_literal)) )) - number_literal) ))) )))) ;) (do_statement "do {\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    } while ((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      if (n < 3) goto LAB_00058924;\n      puStack_5c = tp;\n      M_00 = (Elf32_Ehdr *)ap;\n      tp_00 = pEVar3;\n      pEVar13 = pEVar18;\n      in_stack_ffffffa0 = (Elf32_Ehdr *)M;\n      n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);\n    }" { (if_statement "if (n < 3) goto LAB_00058924;" if (parenthesized_expression "(n < 3)" ( (binary_expression "n < 3" identifier < number_literal) )) (goto_statement "goto LAB_00058924;" goto statement_identifier ;)) (expression_statement "puStack_5c = tp;" (assignment_expression "puStack_5c = tp" identifier = identifier) ;) (expression_statement "M_00 = (Elf32_Ehdr *)ap;" (assignment_expression "M_00 = (Elf32_Ehdr *)ap" identifier = (cast_expression "(Elf32_Ehdr *)ap" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "tp_00 = pEVar3;" (assignment_expression "tp_00 = pEVar3" identifier = identifier) ;) (expression_statement "pEVar13 = pEVar18;" (assignment_expression "pEVar13 = pEVar18" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = (Elf32_Ehdr *)M;" (assignment_expression "in_stack_ffffffa0 = (Elf32_Ehdr *)M" identifier = (cast_expression "(Elf32_Ehdr *)M" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n);" (assignment_expression "n = (*(code *)PTR___gmpn_hgcd_step_0009d51c)(n)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(n)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(n)" ( identifier )))) ;) }) while (parenthesized_expression "((Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0)" ( (binary_expression "(Elf32_Ehdr *)n != (Elf32_Ehdr *)0x0" (cast_expression "(Elf32_Ehdr *)n" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_00058820:\n  if (pEVar10 == *(Elf32_Ehdr **)puVar22) {\n    return iVar21;\n  }" statement_identifier : (if_statement "if (pEVar10 == *(Elf32_Ehdr **)puVar22) {\n    return iVar21;\n  }" if (parenthesized_expression "(pEVar10 == *(Elf32_Ehdr **)puVar22)" ( (binary_expression "pEVar10 == *(Elf32_Ehdr **)puVar22" identifier == (pointer_expression "*(Elf32_Ehdr **)puVar22" * (cast_expression "(Elf32_Ehdr **)puVar22" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar21;\n  }" { (return_statement "return iVar21;" return identifier ;) }))) (expression_statement "puVar22 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar22 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if ((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)) {\n    return 0;\n  }" if (parenthesized_expression "((pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001))" ( (binary_expression "(pEVar10 <= (Elf32_Ehdr *)&DAT_00000001) || (tp_00 <= (Elf32_Ehdr *)&DAT_00000001)" (parenthesized_expression "(pEVar10 <= (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "pEVar10 <= (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))) )) || (parenthesized_expression "(tp_00 <= (Elf32_Ehdr *)&DAT_00000001)" ( (binary_expression "tp_00 <= (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    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))) {\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    iVar23 = 0;\n    iVar24 = 1;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) goto LAB_00058c00;\n  }\n  else {\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }" if (parenthesized_expression "((tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0))))" ( (binary_expression "(tp_00 < pEVar10) || ((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))" (parenthesized_expression "(tp_00 < pEVar10)" ( (binary_expression "tp_00 < pEVar10" identifier < identifier) )) || (parenthesized_expression "((pEVar10 == tp_00 && (pEVar13 < M_00 != 0)))" ( (parenthesized_expression "(pEVar10 == tp_00 && (pEVar13 < M_00 != 0))" ( (binary_expression "pEVar10 == tp_00 && (pEVar13 < M_00 != 0)" (binary_expression "pEVar10 == tp_00" identifier == identifier) && (parenthesized_expression "(pEVar13 < M_00 != 0)" ( (binary_expression "pEVar13 < M_00 != 0" (binary_expression "pEVar13 < M_00" identifier < identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    iVar23 = 0;\n    iVar24 = 1;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) goto LAB_00058c00;\n  }" { (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" ( (binary_expression "(int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00)" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(M_00 < pEVar13) - (int)tp_00)" ( (binary_expression "-(uint)(M_00 < pEVar13) - (int)tp_00" (unary_expression "-(uint)(M_00 < pEVar13)" - (call_expression "(uint)(M_00 < pEVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(M_00 < pEVar13)" ( (binary_expression "M_00 < pEVar13" identifier < identifier) )))) - (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + 0x44940);" (assignment_expression "iVar21 = *(int *)(puVar22 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar22 + 0x44940)" * (cast_expression "(int *)(puVar22 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x44940)" ( (binary_expression "puVar22 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }" if (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar10 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);" (assignment_expression "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13)" identifier = (cast_expression "(Elf32_Ehdr *)((int)M_00 - (int)pEVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)M_00 - (int)pEVar13)" ( (binary_expression "(int)M_00 - (int)pEVar13" (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = 1;" (assignment_expression "iVar24 = 1" identifier = number_literal) ;) (expression_statement "puVar16 = &DAT_00000001;" (assignment_expression "puVar16 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5);" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar21 + *puStack_5c * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + *puStack_5c * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + *puStack_5c * 8 + 5)" ( (binary_expression "iVar21 + *puStack_5c * 8 + 5" (binary_expression "iVar21 + *puStack_5c * 8" identifier + (binary_expression "*puStack_5c * 8" (pointer_expression "*puStack_5c" * identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (if_statement "if (pEVar10 < tp_00) goto LAB_00058c00;" if (parenthesized_expression "(pEVar10 < tp_00)" ( (binary_expression "pEVar10 < tp_00" identifier < identifier) )) (goto_statement "goto LAB_00058c00;" goto statement_identifier ;)) }) (else_clause "else {\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }" else (compound_statement "{\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));\n    iVar21 = *(int *)(puVar22 + 0x44940);\n    if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar23 = 1;\n    iVar24 = 0;\n    puVar16 = &DAT_00000001;\n    uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);\n    iVar17 = 1;\n    if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }\n  }" { (expression_statement "tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)));" (assignment_expression "tp_00 = (Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)))" identifier = (cast_expression "(Elf32_Ehdr *)((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)))" ( (binary_expression "(int)tp_00 - (int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1))" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1))" ( (binary_expression "pEVar10->e_ident_magic_str + ((pEVar13 < M_00) - 1)" (field_expression "pEVar10->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((pEVar13 < M_00) - 1)" ( (binary_expression "(pEVar13 < M_00) - 1" (parenthesized_expression "(pEVar13 < M_00)" ( (binary_expression "pEVar13 < M_00" identifier < identifier) )) - number_literal) ))) )))) )))) ;) (expression_statement "iVar21 = *(int *)(puVar22 + 0x44940);" (assignment_expression "iVar21 = *(int *)(puVar22 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar22 + 0x44940)" * (cast_expression "(int *)(puVar22 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x44940)" ( (binary_expression "puVar22 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (tp_00 < (Elf32_Ehdr *)0x2) {\n      return 0;\n    }" if (parenthesized_expression "(tp_00 < (Elf32_Ehdr *)0x2)" ( (binary_expression "tp_00 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 - (int)M_00)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)M_00)" ( (binary_expression "(int)pEVar13 - (int)M_00" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar16 = &DAT_00000001;" (assignment_expression "puVar16 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1);" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar21 + *puStack_5c * 8 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + *puStack_5c * 8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + *puStack_5c * 8 + 1)" ( (binary_expression "iVar21 + *puStack_5c * 8 + 1" (binary_expression "iVar21 + *puStack_5c * 8" identifier + (binary_expression "*puStack_5c * 8" (pointer_expression "*puStack_5c" * identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (if_statement "if (pEVar10 < tp_00) {\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }" if (parenthesized_expression "(pEVar10 < tp_00)" ( (binary_expression "pEVar10 < tp_00" identifier < identifier) )) (compound_statement "{\nLAB_00058c00:\n      iVar17 = 1;\n      puVar16 = &DAT_00000001;\n      goto LAB_00058c04;\n    }" { (labeled_statement "LAB_00058c00:\n      iVar17 = 1;" statement_identifier : (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;)) (expression_statement "puVar16 = &DAT_00000001;" (assignment_expression "puVar16 = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (goto_statement "goto LAB_00058c04;" goto statement_identifier ;) })) }))) (while_statement "while (pEVar10 != tp_00) {\n    if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    if (pEVar10 < (Elf32_Ehdr *)0x2) break;\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }\n    puVar16 = puVar16 + iVar9;\n    iVar24 = iVar24 + iVar15;\n    uVar19 = (uint)bVar2;\n    if (pEVar10 == tp_00) break;\nLAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));\n    if (tp_00 < (Elf32_Ehdr *)0x2) break;\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar9 = uVar19 * 8;\n    if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\n  }" while (parenthesized_expression "(pEVar10 != tp_00)" ( (binary_expression "pEVar10 != tp_00" identifier != identifier) )) (compound_statement "{\n    if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));\n    if (pEVar10 < (Elf32_Ehdr *)0x2) break;\n    M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);\n    if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }\n    puVar16 = puVar16 + iVar9;\n    iVar24 = iVar24 + iVar15;\n    uVar19 = (uint)bVar2;\n    if (pEVar10 == tp_00) break;\nLAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));\n    if (tp_00 < (Elf32_Ehdr *)0x2) break;\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);\n    iVar9 = uVar19 * 8;\n    if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }\n  }" { (if_statement "if (pEVar10 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }" if (parenthesized_expression "(pEVar10 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar10 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c5c;\n    }" { (expression_statement "uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;" (assignment_expression "uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000" identifier = (binary_expression "((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000" (parenthesized_expression "((uint)M_00 >> 0x10)" ( (binary_expression "(uint)M_00 >> 0x10" (cast_expression "(uint)M_00" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar10 * 0x10000" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;" (assignment_expression "uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000" identifier = (binary_expression "((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000" (parenthesized_expression "((uint)pEVar13 >> 0x10)" ( (binary_expression "(uint)pEVar13 >> 0x10" (cast_expression "(uint)pEVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)tp_00 * 0x10000" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c5c;" goto statement_identifier ;) })) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00));" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00))" ( (binary_expression "(int)pEVar10 + (-(uint)(M_00 < pEVar13) - (int)tp_00)" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(M_00 < pEVar13) - (int)tp_00)" ( (binary_expression "-(uint)(M_00 < pEVar13) - (int)tp_00" (unary_expression "-(uint)(M_00 < pEVar13)" - (call_expression "(uint)(M_00 < pEVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(M_00 < pEVar13)" ( (binary_expression "M_00 < pEVar13" identifier < identifier) )))) - (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar10 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13);" (assignment_expression "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar13)" identifier = (cast_expression "(Elf32_Ehdr *)((int)M_00 - (int)pEVar13)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)M_00 - (int)pEVar13)" ( (binary_expression "(int)M_00 - (int)pEVar13" (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (tp_00 < pEVar10) {\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }\n    else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }" if (parenthesized_expression "(tp_00 < pEVar10)" ( (binary_expression "tp_00 < pEVar10" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      pEVar18 = tp_00;\n      pEVar3 = pEVar13;\n      if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar19 * 8 + 4;\n      if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }\n      uVar20 = uVar20 + 1;\n      iVar15 = iVar17 * uVar20;\n      bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n      iVar9 = iVar23 * uVar20;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pEVar18 = tp_00;" (assignment_expression "pEVar18 = tp_00" identifier = identifier) ;) (expression_statement "pEVar3 = pEVar13;" (assignment_expression "pEVar3 = pEVar13" identifier = identifier) ;) (if_statement "if ((int)pEVar10 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)pEVar10 < 0)" ( (binary_expression "(int)pEVar10 < 0" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar20 = 0;\n        do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)) {\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar18" number_literal < (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar18 = (Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar20 | (int)pEVar18 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 | (int)pEVar18 << 1)" ( (binary_expression "uVar20 | (int)pEVar18 << 1" identifier | (binary_expression "(int)pEVar18 << 1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar20 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar20 = (uint)pEVar3 >> 0x1f;" (assignment_expression "uVar20 = (uint)pEVar3 >> 0x1f" identifier = (binary_expression "(uint)pEVar3 >> 0x1f" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 << 1)" ( (binary_expression "(int)pEVar3 << 1" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        }" { (expression_statement "uVar20 = uVar20 << 1;" (assignment_expression "uVar20 = uVar20 << 1" identifier = (binary_expression "uVar20 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "(pEVar18 < pEVar10)" ( (binary_expression "pEVar18 < pEVar10" identifier < identifier) )) (compound_statement "{\n            uVar12 = (uint)(M_00 < pEVar3);\nLAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }" { (expression_statement "uVar12 = (uint)(M_00 < pEVar3);" (assignment_expression "uVar12 = (uint)(M_00 < pEVar3)" identifier = (call_expression "(uint)(M_00 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(M_00 < pEVar3)" ( (binary_expression "M_00 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_00058f3c:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);" statement_identifier : (expression_statement "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3);" (assignment_expression "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)M_00 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)M_00 - (int)pEVar3)" ( (binary_expression "(int)M_00 - (int)pEVar3" (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 + (-(int)pEVar18 - uVar12))" ( (binary_expression "(int)pEVar10 + (-(int)pEVar18 - uVar12)" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - uVar12)" ( (binary_expression "-(int)pEVar18 - uVar12" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar20 = uVar20 | 1;" (assignment_expression "uVar20 = uVar20 | 1" identifier = (binary_expression "uVar20 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }" else (if_statement "if ((pEVar10 == pEVar18) && (pEVar3 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "((pEVar10 == pEVar18) && (pEVar3 <= M_00))" ( (binary_expression "(pEVar10 == pEVar18) && (pEVar3 <= M_00)" (parenthesized_expression "(pEVar10 == pEVar18)" ( (binary_expression "pEVar10 == pEVar18" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= M_00)" ( (binary_expression "pEVar3 <= M_00" identifier <= identifier) ))) )) (compound_statement "{\n            uVar12 = 0;\n            goto LAB_00058f3c;\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058f3c;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" ( (binary_expression "(int)pEVar18 << 0x1f | (uint)pEVar3 >> 1" (binary_expression "(int)pEVar18 << 0x1f" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar18 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar18 >> 1)" ( (binary_expression "(uint)pEVar18 >> 1" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));\n        uVar20 = 0;\n        do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        } while ((pEVar10 == pEVar18) && (pEVar14 <= M_00));" do (compound_statement "{\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);\n        }" { (do_statement "do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < pEVar10);" do (compound_statement "{\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar3 = pEVar14;\n          }" { (expression_statement "pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);" (assignment_expression "pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 << 1)" ( (binary_expression "(int)pEVar3 << 1" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" ( (binary_expression "(uint)pEVar3 >> 0x1f | (int)pEVar18 << 1" (binary_expression "(uint)pEVar3 >> 0x1f" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar18 << 1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pEVar3 = pEVar14;" (assignment_expression "pEVar3 = pEVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar18 < pEVar10)" ( (binary_expression "pEVar18 < pEVar10" identifier < identifier) )) ;) }) while (parenthesized_expression "((pEVar10 == pEVar18) && (pEVar14 <= M_00))" ( (binary_expression "(pEVar10 == pEVar18) && (pEVar14 <= M_00)" (parenthesized_expression "(pEVar10 == pEVar18)" ( (binary_expression "pEVar10 == pEVar18" identifier == identifier) )) && (parenthesized_expression "(pEVar14 <= M_00)" ( (binary_expression "pEVar14 <= M_00" identifier <= identifier) ))) )) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar12 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);\n          uVar20 = uVar20 << 1;\n          if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        }" { (expression_statement "uVar12 = (int)pEVar18 << 0x1f;" (assignment_expression "uVar12 = (int)pEVar18 << 0x1f" identifier = (binary_expression "(int)pEVar18 << 0x1f" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar18 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar18 >> 1)" ( (binary_expression "(uint)pEVar18 >> 1" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1);" (assignment_expression "pEVar14 = (Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar12 | (uint)pEVar14 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 | (uint)pEVar14 >> 1)" ( (binary_expression "uVar12 | (uint)pEVar14 >> 1" identifier | (binary_expression "(uint)pEVar14 >> 1" (cast_expression "(uint)pEVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar20 = uVar20 << 1;" (assignment_expression "uVar20 = uVar20 << 1" identifier = (binary_expression "uVar20 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar18 < pEVar10) {\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }\n          else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "(pEVar18 < pEVar10)" ( (binary_expression "pEVar18 < pEVar10" identifier < identifier) )) (compound_statement "{\n            uVar12 = (uint)(M_00 < pEVar14);\nLAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);\n            pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));\n            uVar20 = uVar20 | 1;\n          }" { (expression_statement "uVar12 = (uint)(M_00 < pEVar14);" (assignment_expression "uVar12 = (uint)(M_00 < pEVar14)" identifier = (call_expression "(uint)(M_00 < pEVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(M_00 < pEVar14)" ( (binary_expression "M_00 < pEVar14" identifier < identifier) )))) ;) (labeled_statement "LAB_00058dd8:\n            M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);" statement_identifier : (expression_statement "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14);" (assignment_expression "M_00 = (Elf32_Ehdr *)((int)M_00 - (int)pEVar14)" identifier = (cast_expression "(Elf32_Ehdr *)((int)M_00 - (int)pEVar14)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)M_00 - (int)pEVar14)" ( (binary_expression "(int)M_00 - (int)pEVar14" (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12));" (assignment_expression "pEVar10 = (Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar10 + (-(int)pEVar18 - uVar12))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar10 + (-(int)pEVar18 - uVar12))" ( (binary_expression "(int)pEVar10 + (-(int)pEVar18 - uVar12)" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - uVar12)" ( (binary_expression "-(int)pEVar18 - uVar12" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar20 = uVar20 | 1;" (assignment_expression "uVar20 = uVar20 | 1" identifier = (binary_expression "uVar20 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }" else (if_statement "if ((pEVar18 == pEVar10) && (pEVar14 <= M_00)) {\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "((pEVar18 == pEVar10) && (pEVar14 <= M_00))" ( (binary_expression "(pEVar18 == pEVar10) && (pEVar14 <= M_00)" (parenthesized_expression "(pEVar18 == pEVar10)" ( (binary_expression "pEVar18 == pEVar10" identifier == identifier) )) && (parenthesized_expression "(pEVar14 <= M_00)" ( (binary_expression "pEVar14 <= M_00" identifier <= identifier) ))) )) (compound_statement "{\n            uVar12 = 0;\n            goto LAB_00058dd8;\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058dd8;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar19 * 8 + 4;" (assignment_expression "iVar9 = uVar19 * 8 + 4" identifier = (binary_expression "uVar19 * 8 + 4" (binary_expression "uVar19 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (pEVar10 < (Elf32_Ehdr *)0x2) {\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }" if (parenthesized_expression "(pEVar10 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar10 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar24 = iVar17 * uVar20 + iVar24;\n        puVar16 = puVar16 + iVar23 * uVar20;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));\n        break;\n      }" { (expression_statement "iVar24 = iVar17 * uVar20 + iVar24;" (assignment_expression "iVar24 = iVar17 * uVar20 + iVar24" identifier = (binary_expression "iVar17 * uVar20 + iVar24" (binary_expression "iVar17 * uVar20" identifier * identifier) + identifier)) ;) (expression_statement "puVar16 = puVar16 + iVar23 * uVar20;" (assignment_expression "puVar16 = puVar16 + iVar23 * uVar20" identifier = (binary_expression "puVar16 + iVar23 * uVar20" identifier + (binary_expression "iVar23 * uVar20" identifier * identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar20 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar20 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar20 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar20 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar20 & 3)" ( (binary_expression "uVar20 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar17 * uVar20;" (assignment_expression "iVar15 = iVar17 * uVar20" identifier = (binary_expression "iVar17 * uVar20" identifier * identifier)) ;) (expression_statement "bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3));" (assignment_expression "bVar2 = *(byte *)(iVar21 + iVar9 + (uVar20 & 3))" identifier = (pointer_expression "*(byte *)(iVar21 + iVar9 + (uVar20 & 3))" * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar20 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar20 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar20 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar20 & 3)" ( (binary_expression "uVar20 & 3" identifier & number_literal) ))) ))))) ;) (expression_statement "iVar9 = iVar23 * uVar20;" (assignment_expression "iVar9 = iVar23 * uVar20" identifier = (binary_expression "iVar23 * uVar20" identifier * identifier)) ;) }) (else_clause "else {\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }" else (compound_statement "{\n      bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);\n      iVar15 = iVar17;\n      iVar9 = iVar23;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5);" (assignment_expression "bVar2 = *(byte *)(iVar21 + uVar19 * 8 + 5)" identifier = (pointer_expression "*(byte *)(iVar21 + uVar19 * 8 + 5)" * (cast_expression "(byte *)(iVar21 + uVar19 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 8 + 5)" ( (binary_expression "iVar21 + uVar19 * 8 + 5" (binary_expression "iVar21 + uVar19 * 8" identifier + (binary_expression "uVar19 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar15 = iVar17;" (assignment_expression "iVar15 = iVar17" identifier = identifier) ;) (expression_statement "iVar9 = iVar23;" (assignment_expression "iVar9 = iVar23" identifier = identifier) ;) }))) (expression_statement "puVar16 = puVar16 + iVar9;" (assignment_expression "puVar16 = puVar16 + iVar9" identifier = (binary_expression "puVar16 + iVar9" identifier + identifier)) ;) (expression_statement "iVar24 = iVar24 + iVar15;" (assignment_expression "iVar24 = iVar24 + iVar15" identifier = (binary_expression "iVar24 + iVar15" identifier + identifier)) ;) (expression_statement "uVar19 = (uint)bVar2;" (assignment_expression "uVar19 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (pEVar10 == tp_00) break;" if (parenthesized_expression "(pEVar10 == tp_00)" ( (binary_expression "pEVar10 == tp_00" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058c04:\n    if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }" statement_identifier : (if_statement "if (tp_00 < &Elf32_Ehdr_00010000) {\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }" if (parenthesized_expression "(tp_00 < &Elf32_Ehdr_00010000)" ( (binary_expression "tp_00 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;\n      uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;\n      goto LAB_00058c8c;\n    }" { (expression_statement "uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000;" (assignment_expression "uVar20 = ((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000" identifier = (binary_expression "((uint)M_00 >> 0x10) + (int)pEVar10 * 0x10000" (parenthesized_expression "((uint)M_00 >> 0x10)" ( (binary_expression "(uint)M_00 >> 0x10" (cast_expression "(uint)M_00" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar10 * 0x10000" (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000;" (assignment_expression "uVar12 = ((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000" identifier = (binary_expression "((uint)pEVar13 >> 0x10) + (int)tp_00 * 0x10000" (parenthesized_expression "((uint)pEVar13 >> 0x10)" ( (binary_expression "(uint)pEVar13 >> 0x10" (cast_expression "(uint)pEVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)tp_00 * 0x10000" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (expression_statement "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10));" (assignment_expression "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10))" identifier = (cast_expression "(Elf32_Ehdr *)((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10))" ( (binary_expression "(int)tp_00 + (-(uint)(pEVar13 < M_00) - (int)pEVar10)" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar13 < M_00) - (int)pEVar10)" ( (binary_expression "-(uint)(pEVar13 < M_00) - (int)pEVar10" (unary_expression "-(uint)(pEVar13 < M_00)" - (call_expression "(uint)(pEVar13 < M_00)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar13 < M_00)" ( (binary_expression "pEVar13 < M_00" identifier < identifier) )))) - (cast_expression "(int)pEVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (tp_00 < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(tp_00 < (Elf32_Ehdr *)0x2)" ( (binary_expression "tp_00 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)M_00)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 - (int)M_00)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)M_00)" ( (binary_expression "(int)pEVar13 - (int)M_00" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)M_00" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = uVar19 * 8;" (assignment_expression "iVar9 = uVar19 * 8" identifier = (binary_expression "uVar19 * 8" identifier * number_literal)) ;) (if_statement "if (pEVar10 < tp_00) {\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" if (parenthesized_expression "(pEVar10 < tp_00)" ( (binary_expression "pEVar10 < tp_00" identifier < identifier) )) (compound_statement "{\n      iVar15 = 0;\n      pEVar18 = pEVar10;\n      pEVar3 = M_00;\n      if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }\n      if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }\n      uVar19 = uVar19 + 1;\n      iVar17 = uVar19 * iVar24 + iVar17;\n      iVar23 = iVar23 + uVar19 * (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "pEVar18 = pEVar10;" (assignment_expression "pEVar18 = pEVar10" identifier = identifier) ;) (expression_statement "pEVar3 = M_00;" (assignment_expression "pEVar3 = M_00" identifier = identifier) ;) (if_statement "if ((int)tp_00 < 0) {\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }" if (parenthesized_expression "((int)tp_00 < 0)" ( (binary_expression "(int)tp_00 < 0" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar15 = 1;\n        for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }\n        uVar19 = 0;\n        do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);\n      }" { (expression_statement "iVar15 = 1;" (assignment_expression "iVar15 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar18; pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)) {\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar18" number_literal < (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar18 = (Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar19 | (int)pEVar18 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar19 | (int)pEVar18 << 1)" ( (binary_expression "uVar19 | (int)pEVar18 << 1" identifier | (binary_expression "(int)pEVar18 << 1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar19 = (uint)pEVar3 >> 0x1f;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n          iVar15 = iVar15 + 1;\n        }" { (expression_statement "uVar19 = (uint)pEVar3 >> 0x1f;" (assignment_expression "uVar19 = (uint)pEVar3 >> 0x1f" identifier = (binary_expression "(uint)pEVar3 >> 0x1f" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar3 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 << 1)" ( (binary_expression "(int)pEVar3 << 1" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        } while (iVar15 != 0);" do (compound_statement "{\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }\n          iVar15 = iVar15 + -1;\n          pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n        }" { (expression_statement "uVar19 = uVar19 << 1;" (assignment_expression "uVar19 = uVar19 << 1" identifier = (binary_expression "uVar19 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "(pEVar18 < tp_00)" ( (binary_expression "pEVar18 < tp_00" identifier < identifier) )) (compound_statement "{\n            uVar20 = (uint)(pEVar13 < pEVar3);\nLAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }" { (expression_statement "uVar20 = (uint)(pEVar13 < pEVar3);" (assignment_expression "uVar20 = (uint)(pEVar13 < pEVar3)" identifier = (call_expression "(uint)(pEVar13 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar13 < pEVar3)" ( (binary_expression "pEVar13 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_0005900c:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);" statement_identifier : (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)pEVar3)" ( (binary_expression "(int)pEVar13 - (int)pEVar3" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));" (assignment_expression "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)tp_00 + (-(int)pEVar18 - uVar20))" ( (binary_expression "(int)tp_00 + (-(int)pEVar18 - uVar20)" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - uVar20)" ( (binary_expression "-(int)pEVar18 - uVar20" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar19 = uVar19 | 1;" (assignment_expression "uVar19 = uVar19 | 1" identifier = (binary_expression "uVar19 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }" else (if_statement "if ((tp_00 == pEVar18) && (pEVar3 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "((tp_00 == pEVar18) && (pEVar3 <= pEVar13))" ( (binary_expression "(tp_00 == pEVar18) && (pEVar3 <= pEVar13)" (parenthesized_expression "(tp_00 == pEVar18)" ( (binary_expression "tp_00 == pEVar18" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar13)" ( (binary_expression "pEVar3 <= pEVar13" identifier <= identifier) ))) )) (compound_statement "{\n            uVar20 = 0;\n            goto LAB_0005900c;\n          }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005900c;" goto statement_identifier ;) })))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar18 << 0x1f | (uint)pEVar3 >> 1)" ( (binary_expression "(int)pEVar18 << 0x1f | (uint)pEVar3 >> 1" (binary_expression "(int)pEVar18 << 0x1f" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar18 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar18 >> 1)" ( (binary_expression "(uint)pEVar18 >> 1" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));\n        uVar19 = 0;\n        do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        } while ((tp_00 == pEVar18) && (pEVar14 <= pEVar13));" do (compound_statement "{\n          do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);\n        }" { (do_statement "do {\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          } while (pEVar18 < tp_00);" do (compound_statement "{\n            pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);\n            pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);\n            iVar15 = iVar15 + 1;\n            pEVar3 = pEVar14;\n          }" { (expression_statement "pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1);" (assignment_expression "pEVar14 = (Elf32_Ehdr *)((int)pEVar3 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 << 1)" ( (binary_expression "(int)pEVar3 << 1" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar3 >> 0x1f | (int)pEVar18 << 1)" ( (binary_expression "(uint)pEVar3 >> 0x1f | (int)pEVar18 << 1" (binary_expression "(uint)pEVar3 >> 0x1f" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar18 << 1" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "pEVar3 = pEVar14;" (assignment_expression "pEVar3 = pEVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar18 < tp_00)" ( (binary_expression "pEVar18 < tp_00" identifier < identifier) )) ;) }) while (parenthesized_expression "((tp_00 == pEVar18) && (pEVar14 <= pEVar13))" ( (binary_expression "(tp_00 == pEVar18) && (pEVar14 <= pEVar13)" (parenthesized_expression "(tp_00 == pEVar18)" ( (binary_expression "tp_00 == pEVar18" identifier == identifier) )) && (parenthesized_expression "(pEVar14 <= pEVar13)" ( (binary_expression "pEVar14 <= pEVar13" identifier <= identifier) ))) )) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        } while (iVar15 != 0);" do (compound_statement "{\n          uVar20 = (int)pEVar18 << 0x1f;\n          pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);\n          pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);\n          uVar19 = uVar19 << 1;\n          if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }\n          iVar15 = iVar15 + -1;\n        }" { (expression_statement "uVar20 = (int)pEVar18 << 0x1f;" (assignment_expression "uVar20 = (int)pEVar18 << 0x1f" identifier = (binary_expression "(int)pEVar18 << 0x1f" (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1);" (assignment_expression "pEVar18 = (Elf32_Ehdr *)((uint)pEVar18 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar18 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar18 >> 1)" ( (binary_expression "(uint)pEVar18 >> 1" (cast_expression "(uint)pEVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1);" (assignment_expression "pEVar14 = (Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar20 | (uint)pEVar14 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 | (uint)pEVar14 >> 1)" ( (binary_expression "uVar20 | (uint)pEVar14 >> 1" identifier | (binary_expression "(uint)pEVar14 >> 1" (cast_expression "(uint)pEVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar19 = uVar19 << 1;" (assignment_expression "uVar19 = uVar19 << 1" identifier = (binary_expression "uVar19 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar18 < tp_00) {\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }\n          else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "(pEVar18 < tp_00)" ( (binary_expression "pEVar18 < tp_00" identifier < identifier) )) (compound_statement "{\n            uVar20 = (uint)(pEVar13 < pEVar14);\nLAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);\n            tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));\n            uVar19 = uVar19 | 1;\n          }" { (expression_statement "uVar20 = (uint)(pEVar13 < pEVar14);" (assignment_expression "uVar20 = (uint)(pEVar13 < pEVar14)" identifier = (call_expression "(uint)(pEVar13 < pEVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar13 < pEVar14)" ( (binary_expression "pEVar13 < pEVar14" identifier < identifier) )))) ;) (labeled_statement "LAB_00058d20:\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);" statement_identifier : (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 - (int)pEVar14)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)pEVar14)" ( (binary_expression "(int)pEVar13 - (int)pEVar14" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20));" (assignment_expression "tp_00 = (Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)tp_00 + (-(int)pEVar18 - uVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)tp_00 + (-(int)pEVar18 - uVar20))" ( (binary_expression "(int)tp_00 + (-(int)pEVar18 - uVar20)" (cast_expression "(int)tp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar18 - uVar20)" ( (binary_expression "-(int)pEVar18 - uVar20" (unary_expression "-(int)pEVar18" - (cast_expression "(int)pEVar18" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar19 = uVar19 | 1;" (assignment_expression "uVar19 = uVar19 | 1" identifier = (binary_expression "uVar19 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }" else (if_statement "if ((pEVar18 == tp_00) && (pEVar14 <= pEVar13)) {\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "((pEVar18 == tp_00) && (pEVar14 <= pEVar13))" ( (binary_expression "(pEVar18 == tp_00) && (pEVar14 <= pEVar13)" (parenthesized_expression "(pEVar18 == tp_00)" ( (binary_expression "pEVar18 == tp_00" identifier == identifier) )) && (parenthesized_expression "(pEVar14 <= pEVar13)" ( (binary_expression "pEVar14 <= pEVar13" identifier <= identifier) ))) )) (compound_statement "{\n            uVar20 = 0;\n            goto LAB_00058d20;\n          }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058d20;" goto statement_identifier ;) })))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (tp_00 < (Elf32_Ehdr *)0x2) {\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }" if (parenthesized_expression "(tp_00 < (Elf32_Ehdr *)0x2)" ( (binary_expression "tp_00 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = uVar19 * iVar24 + iVar17;\n        iVar23 = iVar23 + uVar19 * (int)puVar16;\n        uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));\n        break;\n      }" { (expression_statement "iVar17 = uVar19 * iVar24 + iVar17;" (assignment_expression "iVar17 = uVar19 * iVar24 + iVar17" identifier = (binary_expression "uVar19 * iVar24 + iVar17" (binary_expression "uVar19 * iVar24" identifier * identifier) + identifier)) ;) (expression_statement "iVar23 = iVar23 + uVar19 * (int)puVar16;" (assignment_expression "iVar23 = iVar23 + uVar19 * (int)puVar16" identifier = (binary_expression "iVar23 + uVar19 * (int)puVar16" identifier + (binary_expression "uVar19 * (int)puVar16" identifier * (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar19 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar19 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar19 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar19 & 3)" ( (binary_expression "uVar19 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = uVar19 * iVar24 + iVar17;" (assignment_expression "iVar17 = uVar19 * iVar24 + iVar17" identifier = (binary_expression "uVar19 * iVar24 + iVar17" (binary_expression "uVar19 * iVar24" identifier * identifier) + identifier)) ;) (expression_statement "iVar23 = iVar23 + uVar19 * (int)puVar16;" (assignment_expression "iVar23 = iVar23 + uVar19 * (int)puVar16" identifier = (binary_expression "iVar23 + uVar19 * (int)puVar16" identifier + (binary_expression "uVar19 * (int)puVar16" identifier * (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3));" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + (uVar19 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + (uVar19 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + (uVar19 & 3))" ( (binary_expression "iVar21 + iVar9 + (uVar19 & 3)" (binary_expression "iVar21 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar19 & 3)" ( (binary_expression "uVar19 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar17 = iVar17 + iVar24;\n      iVar23 = iVar23 + (int)puVar16;\n      uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);\n    }" { (expression_statement "iVar17 = iVar17 + iVar24;" (assignment_expression "iVar17 = iVar17 + iVar24" identifier = (binary_expression "iVar17 + iVar24" identifier + identifier)) ;) (expression_statement "iVar23 = iVar23 + (int)puVar16;" (assignment_expression "iVar23 = iVar23 + (int)puVar16" identifier = (binary_expression "iVar23 + (int)puVar16" identifier + (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1);" (assignment_expression "uVar19 = (uint)*(byte *)(iVar21 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar21 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar21 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + iVar9 + 1)" ( (binary_expression "iVar21 + iVar9 + 1" (binary_expression "iVar21 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) })) (labeled_statement "LAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);" statement_identifier : (expression_statement "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar17 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x18)" ( (binary_expression "(uint)iVar17 >> 0x18" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar17 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[0]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x10)" ( (binary_expression "(uint)iVar17 >> 0x10" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar17 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[1]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 8)" ( (binary_expression "(uint)iVar17 >> 8" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17;" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar17" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[2]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar24 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_class" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar24 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar24 >> 0x18)" ( (binary_expression "(uint)iVar24 >> 0x18" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar24 >> 0x10)" (field_expression "in_stack_ffffffa0->e_ident_data" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar24 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar24 >> 0x10)" ( (binary_expression "(uint)iVar24 >> 0x10" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar24 >> 8)" (field_expression "in_stack_ffffffa0->e_ident_version" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar24 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar24 >> 8)" ( (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_osabi = (char)iVar24;" (assignment_expression "in_stack_ffffffa0->e_ident_osabi = (char)iVar24" (field_expression "in_stack_ffffffa0->e_ident_osabi" identifier -> field_identifier) = (cast_expression "(char)iVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar23 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_abiversion" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar23 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar23 >> 0x18)" ( (binary_expression "(uint)iVar23 >> 0x18" (cast_expression "(uint)iVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar23 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[0]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar23 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar23 >> 0x10)" ( (binary_expression "(uint)iVar23 >> 0x10" (cast_expression "(uint)iVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar23 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[1]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar23 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar23 >> 8)" ( (binary_expression "(uint)iVar23 >> 8" (cast_expression "(uint)iVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23;" (assignment_expression "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar23" (subscript_expression "in_stack_ffffffa0->e_ident_pad[2]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar23" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16;" (assignment_expression "*(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3) = puVar16" (pointer_expression "*(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3)" * (cast_expression "(undefined1 **)(in_stack_ffffffa0->e_ident_pad + 3)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_stack_ffffffa0->e_ident_pad + 3)" ( (binary_expression "in_stack_ffffffa0->e_ident_pad + 3" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*puStack_5c = uVar19;" (assignment_expression "*puStack_5c = uVar19" (pointer_expression "*puStack_5c" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "Elf32_Ehdr *\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}\n\n" (function_definition "Elf32_Ehdr *\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" type_identifier (pointer_declarator "*\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" * (function_declarator "__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" identifier (parameter_list "(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" ( (parameter_declaration "Elf32_Ehdr *param_1" type_identifier (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 "Elf32_Ehdr *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "Elf32_Ehdr *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "Elf32_Ehdr *pEVar11;" type_identifier (pointer_declarator "*pEVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar13;" type_identifier (pointer_declarator "*pEVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "Elf32_Ehdr *pEVar20;" type_identifier (pointer_declarator "*pEVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "Elf32_Ehdr *pEVar23;" type_identifier (pointer_declarator "*pEVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "Elf32_Ehdr *in_stack_ffffffa0;" type_identifier (pointer_declarator "*in_stack_ffffffa0" * identifier) ;) (declaration "Elf32_Ehdr *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "Elf32_Ehdr *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" * (cast_expression "(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" identifier = identifier) ;) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" identifier = identifier) ;) (expression_statement "pEVar15 = param_4;" (assignment_expression "pEVar15 = param_4" identifier = identifier) ;) }) (else_clause "else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" else (compound_statement "{\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" { (expression_statement "iVar25 = (int)param_3 >> 1;" (assignment_expression "iVar25 = (int)param_3 >> 1" identifier = (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar25 + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )))) ;) (if_statement "if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" if (parenthesized_expression "((int)param_3 < 400)" ( (binary_expression "(int)param_3 < 400" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" identifier = (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000586e4:\n      pEVar11 = param_1;" statement_identifier : (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;)) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (if_statement "if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" if (parenthesized_expression "(pEVar3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2)" identifier = (cast_expression "(Elf32_Ehdr *)(iVar25 * 2)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 * 2)" ( (binary_expression "iVar25 * 2" identifier * number_literal) )))) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (if_statement "if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" if (parenthesized_expression "(pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6))" ( (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20" (field_expression "pEVar13->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "(int)pEVar3->e_ident_magic_str * 0x20" (cast_expression "(int)pEVar3->e_ident_magic_str" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar3->e_ident_magic_str" identifier -> field_identifier)) * number_literal)) + number_literal) <= (cast_expression "(undefined1 *)((int)pEVar20 << 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 6)" ( (binary_expression "(int)pEVar20 << 6" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) )) (compound_statement "{\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" { (if_statement "if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str" identifier = (cast_expression "(Elf32_Ehdr *)pEVar20->e_ident_magic_str" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar20->e_ident_magic_str" identifier -> field_identifier))) ;) (expression_statement "param_3 = pEVar23;" (assignment_expression "param_3 = pEVar23" identifier = identifier) ;) (if_statement "if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" if (parenthesized_expression "(pEVar23 != pEVar3)" ( (binary_expression "pEVar23 != pEVar3" identifier != identifier) )) (compound_statement "{\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" { (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + (-1 - (int)pEVar20))" ( (binary_expression "(int)pEVar3 + (-1 - (int)pEVar20)" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)pEVar20)" ( (binary_expression "-1 - (int)pEVar20" number_literal - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pbVar8 = pEVar3[0x13b13b1].e_ident_pad;" (assignment_expression "pbVar8 = pEVar3[0x13b13b1].e_ident_pad" identifier = (field_expression "pEVar3[0x13b13b1].e_ident_pad" (subscript_expression "pEVar3[0x13b13b1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" identifier = (cast_expression "(Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pbVar8 + 2) * 4)" ( (binary_expression "(int)(pbVar8 + 2) * 4" (cast_expression "(int)(pbVar8 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar8 + 2)" ( (binary_expression "pbVar8 + 2" identifier + number_literal) ))) * number_literal) )))) ;) (expression_statement "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1" identifier = (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_1->e_ident_pad" identifier -> field_identifier) + (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pEVar7 = pEVar15;" (assignment_expression "pEVar7 = pEVar15" identifier = identifier) ;) (do_statement "do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              }" { (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar7[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar7[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar7[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar7[-1].e_shstrndx" & (field_expression "pEVar7[-1].e_shstrndx" (subscript_expression "pEVar7[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" if (parenthesized_expression "(*(int *)pbVar10 != 0)" ( (binary_expression "*(int *)pbVar10 != 0" (pointer_expression "*(int *)pbVar10" * (cast_expression "(int *)pbVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" { (expression_statement "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1" identifier = (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_2->e_ident_pad" identifier -> field_identifier) + (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (goto_statement "goto LAB_00058780;" goto statement_identifier ;) })) (expression_statement "pbVar10 = pbVar10 + -4;" (assignment_expression "pbVar10 = pbVar10 + -4" identifier = (binary_expression "pbVar10 + -4" identifier + number_literal)) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) }) while (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)) )) ;) })) }) (else_clause "else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" else (compound_statement "{\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" { (expression_statement "iVar26 = iVar25 + -1;" (assignment_expression "iVar26 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "pEVar23 = pEVar20;" (assignment_expression "pEVar23 = pEVar20" identifier = identifier) ;) (labeled_statement "LAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" statement_identifier : (expression_statement "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" (assignment_expression "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" identifier = (binary_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" (call_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" ( (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2" (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" ( (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) + (binary_expression "iVar25 * -2" identifier * number_literal)) ))) >> number_literal)) ;)) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1->e_ident_magic_str + uVar21 * 4 + -1)" ( (binary_expression "param_1->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + uVar21 * 4" (field_expression "param_1->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" identifier = (cast_expression "(Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2->e_ident_magic_str + uVar21 * 4 + -1)" ( (binary_expression "param_2->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + uVar21 * 4" (field_expression "param_2->e_ident_magic_str" identifier -> field_identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 - uVar21)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 - uVar21)" ( (binary_expression "(int)pEVar23 - uVar21" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar3 - uVar21)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 - uVar21)" ( (binary_expression "(int)pEVar3 - uVar21" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) }))) })) (goto_statement "goto LAB_00058864;" goto statement_identifier ;) })) (goto_statement "goto LAB_00058870;" goto statement_identifier ;) })) (expression_statement "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" identifier = (cast_expression "(Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_reduce_0009d110" * (cast_expression "(code *)PTR___gmpn_hgcd_reduce_0009d110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_1,param_2,param_3,iVar25)" ( identifier , identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pEVar3 = param_3;" (assignment_expression "pEVar3 = param_3" identifier = identifier) ;) (expression_statement "pEVar23 = pEVar11;" (assignment_expression "pEVar23 = pEVar11" identifier = identifier) ;) (if_statement "if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\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      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }" { (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar3 = pEVar11;" (assignment_expression "pEVar3 = pEVar11" identifier = identifier) ;) })) (while_statement "while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" while (parenthesized_expression "(((int)param_3 * 3 >> 2) + 1 < (int)pEVar3)" ( (binary_expression "((int)param_3 * 3 >> 2) + 1 < (int)pEVar3" (binary_expression "((int)param_3 * 3 >> 2) + 1" (parenthesized_expression "((int)param_3 * 3 >> 2)" ( (binary_expression "(int)param_3 * 3 >> 2" (binary_expression "(int)param_3 * 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) >> number_literal) )) + number_literal) < (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" { (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar3)" ( identifier ))))) ;) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;" if (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00058820;" goto statement_identifier ;)) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (if_statement "if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" if (parenthesized_expression "(iVar25 + 3 < (int)pEVar3)" ( (binary_expression "iVar25 + 3 < (int)pEVar3" (binary_expression "iVar25 + 3" identifier + number_literal) < (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" { (expression_statement "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc" identifier = (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffbc" & identifier))) ;) (expression_statement "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;" (assignment_expression "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1" identifier = (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) + 1" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" ( (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal)) ;) (expression_statement "iVar25 = (int)pEVar3 - iVar26;" (assignment_expression "iVar25 = (int)pEVar3 - iVar26" identifier = (binary_expression "(int)pEVar3 - iVar26" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar11,iVar25,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" identifier = (cast_expression "(Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" ( (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7" (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10" (field_expression "param_5->e_ident_pad" identifier -> field_identifier) + (binary_expression "((iVar25 + 1) / 2) * 0x10" (parenthesized_expression "((iVar25 + 1) / 2)" ( (binary_expression "(iVar25 + 1) / 2" (parenthesized_expression "(iVar25 + 1)" ( (binary_expression "iVar25 + 1" identifier + number_literal) )) / number_literal) )) * number_literal)) + number_literal) )))) ;) (expression_statement "pEVar15 = pEVar11;" (assignment_expression "pEVar15 = pEVar11" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = pEVar13;" (assignment_expression "in_stack_ffffffa0 = pEVar13" identifier = identifier) ;) (expression_statement "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);" (assignment_expression "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" identifier = (call_expression "__gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" identifier (argument_list "((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" ( (binary_expression "(int)param_1 + iVar26 * 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) , (binary_expression "(int)param_2 + iVar26 * 4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar26 * 4" identifier * number_literal)) , identifier )))) ;) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" { (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar3)" ( identifier ))))) ;) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) break;" if (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (goto_statement "goto LAB_00058820;" goto statement_identifier ;) (while_statement "while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" { (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" identifier = (binary_expression "pbVar8 + -4" identifier + number_literal)) ;) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" identifier = identifier) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (if_statement "if (pEVar15 == (Elf32_Ehdr *)0x0) break;" if (parenthesized_expression "(pEVar15 == (Elf32_Ehdr *)0x0)" ( (binary_expression "pEVar15 == (Elf32_Ehdr *)0x0" identifier == (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar15[-1].e_shstrndx + 1)" ( (binary_expression "(int)&pEVar15[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar15[-1].e_shstrndx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar15[-1].e_shstrndx" & (field_expression "pEVar15[-1].e_shstrndx" (subscript_expression "pEVar15[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" if (parenthesized_expression "(*(int *)pbVar8 != 0)" ( (binary_expression "*(int *)pbVar8 != 0" (pointer_expression "*(int *)pbVar8" * (cast_expression "(int *)pbVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" { (expression_statement "iVar26 = 0x1f;" (assignment_expression "iVar26 = 0x1f" identifier = number_literal) ;) (goto_statement "goto LAB_00058978;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;" statement_identifier : (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar25 = iVar26;" (assignment_expression "iVar25 = iVar26" identifier = identifier) ;) (if_statement "if ((int)param_3 < 3) goto LAB_00058870;" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00058870;" goto statement_identifier ;)) (goto_statement "goto LAB_000586e4;" goto statement_identifier ;) (labeled_statement "LAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" statement_identifier : (if_statement "if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" if (parenthesized_expression "(uVar22 != uVar14)" ( (binary_expression "uVar22 != uVar14" identifier != identifier) )) (compound_statement "{\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" { (expression_statement "uVar14 = uVar14 - uVar22;" (assignment_expression "uVar14 = uVar14 - uVar22" identifier = (binary_expression "uVar14 - uVar22" identifier - identifier)) ;) (if_statement "if (uVar14 < 0x20000) goto LAB_00058b84;" if (parenthesized_expression "(uVar14 < 0x20000)" ( (binary_expression "uVar14 < 0x20000" identifier < number_literal) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" identifier = (binary_expression "uVar21 * 8" identifier * number_literal)) ;) (if_statement "if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" if (parenthesized_expression "(uVar22 < uVar14)" ( (binary_expression "uVar22 < uVar14" identifier < identifier) )) (compound_statement "{\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" identifier = identifier) ;) (if_statement "if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar21 <= uVar14)" ( (binary_expression "uVar21 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar14 = uVar14 - uVar21;" (assignment_expression "uVar14 = uVar14 - uVar21" identifier = (binary_expression "uVar14 - uVar21" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar21 = uVar21 >> 1;" (assignment_expression "uVar21 = uVar21 >> 1" identifier = (binary_expression "uVar21 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" { (do_statement "do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);" do (compound_statement "{\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "uVar12 = uVar21;" (assignment_expression "uVar12 = uVar21" identifier = identifier) ;) (expression_statement "uVar21 = uVar12 << 1;" (assignment_expression "uVar21 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 <= uVar14)" ( (binary_expression "uVar21 <= uVar14" identifier <= identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar12 & 0x7fffffff;" (assignment_expression "uVar12 = uVar12 & 0x7fffffff" identifier = (binary_expression "uVar12 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ;) (if_statement "if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" if (parenthesized_expression "(uVar12 <= uVar14)" ( (binary_expression "uVar12 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" { (expression_statement "uVar14 = uVar14 - uVar12;" (assignment_expression "uVar14 = uVar14 - uVar12" identifier = (binary_expression "uVar14 - uVar12" identifier - identifier)) ;) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar12 = uVar12 >> 1;" (assignment_expression "uVar12 = uVar12 >> 1" identifier = (binary_expression "uVar12 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar14 < 0x20000)" ( (binary_expression "uVar14 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" identifier = (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" identifier = (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" identifier = (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" identifier = (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" { (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" identifier = (binary_expression "iVar19 + iVar17" identifier + identifier)) ;) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" identifier = (binary_expression "iVar26 + iVar18" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + 1)" ( (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) (labeled_statement "LAB_00058c5c:\n    bVar1 = uVar22 == uVar14;" statement_identifier : (expression_statement "bVar1 = uVar22 == uVar14;" (assignment_expression "bVar1 = uVar22 == uVar14" identifier = (binary_expression "uVar22 == uVar14" identifier == identifier)) ;)) (expression_statement "uVar22 = uVar22 - uVar14;" (assignment_expression "uVar22 = uVar22 - uVar14" identifier = (binary_expression "uVar22 - uVar14" identifier - identifier)) ;) (if_statement "if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;" if (parenthesized_expression "((bVar1) || (uVar22 < 0x20000))" ( (binary_expression "(bVar1) || (uVar22 < 0x20000)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar22 < 0x20000)" ( (binary_expression "uVar22 < 0x20000" identifier < number_literal) ))) )) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;)) (if_statement "if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" if (parenthesized_expression "(uVar14 < uVar22)" ( (binary_expression "uVar14 < uVar22" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)uVar22 < 0)" ( (binary_expression "(int)uVar22 < 0" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar5 = uVar5 << 1" identifier = (binary_expression "uVar5 << 1" identifier << number_literal)) ) (compound_statement "{\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (if_statement "if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" if (parenthesized_expression "(uVar5 <= uVar22)" ( (binary_expression "uVar5 <= uVar22" identifier <= identifier) )) (compound_statement "{\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" { (expression_statement "uVar22 = uVar22 - uVar5;" (assignment_expression "uVar22 = uVar22 - uVar5" identifier = (binary_expression "uVar22 - uVar5" identifier - identifier)) ;) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" identifier = (binary_expression "uVar12 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" identifier = (binary_expression "uVar5 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);" do (compound_statement "{\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (expression_statement "uVar5 = uVar6 << 1;" (assignment_expression "uVar5 = uVar6 << 1" identifier = (binary_expression "uVar6 << 1" identifier << number_literal)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 <= uVar22)" ( (binary_expression "uVar5 <= uVar22" identifier <= identifier) )) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = uVar6 & 0x7fffffff;" (assignment_expression "uVar6 = uVar6 & 0x7fffffff" identifier = (binary_expression "uVar6 & 0x7fffffff" identifier & number_literal)) ;) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" identifier = (binary_expression "uVar12 << 1" identifier << number_literal)) ;) (if_statement "if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" if (parenthesized_expression "(uVar6 <= uVar22)" ( (binary_expression "uVar6 <= uVar22" identifier <= identifier) )) (compound_statement "{\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" { (expression_statement "uVar22 = uVar22 - uVar6;" (assignment_expression "uVar22 = uVar22 - uVar6" identifier = (binary_expression "uVar22 - uVar6" identifier - identifier)) ;) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" identifier = (binary_expression "uVar12 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar6 = uVar6 >> 1;" (assignment_expression "uVar6 = uVar6 >> 1" identifier = (binary_expression "uVar6 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" identifier = (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" if (parenthesized_expression "(uVar22 < 0x20000)" ( (binary_expression "uVar22 < 0x20000" identifier < number_literal) )) (compound_statement "{\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" { (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" identifier = (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" identifier = (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) ))) ))))) ;) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" identifier = (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" identifier = (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" else (compound_statement "{\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" { (expression_statement "iVar17 = iVar17 + iVar19;" (assignment_expression "iVar17 = iVar17 + iVar19" identifier = (binary_expression "iVar17 + iVar19" identifier + identifier)) ;) (expression_statement "iVar18 = iVar18 + iVar26;" (assignment_expression "iVar18 = iVar18 + iVar26" identifier = (binary_expression "iVar18 + iVar26" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" ( (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal)) + number_literal) ))))) ;) }))) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00058b84;" goto statement_identifier ;) (labeled_statement "LAB_00058870:\n  pEVar3 = param_2;" statement_identifier : (expression_statement "pEVar3 = param_2;" (assignment_expression "pEVar3 = param_2" identifier = identifier) ;)) (if_statement "if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }" { (labeled_statement "LAB_00058924:\n    local_5c = param_5;" statement_identifier : (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;)) (if_statement "if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" if (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x2)" ( (binary_expression "param_3 == (Elf32_Ehdr *)0x2" identifier == (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" { (expression_statement "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc" identifier = (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffbc" & identifier))) ;) (expression_statement "pEVar15 = *(Elf32_Ehdr **)pEVar3;" (assignment_expression "pEVar15 = *(Elf32_Ehdr **)pEVar3" identifier = (pointer_expression "*(Elf32_Ehdr **)pEVar3" * (cast_expression "(Elf32_Ehdr **)pEVar3" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar13 = *(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 "pEVar11 = *(Elf32_Ehdr **)param_1;" (assignment_expression "pEVar11 = *(Elf32_Ehdr **)param_1" identifier = (pointer_expression "*(Elf32_Ehdr **)param_1" * (cast_expression "(Elf32_Ehdr **)param_1" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar4._0_1_ = param_1->e_ident_class;" (assignment_expression "uVar4._0_1_ = param_1->e_ident_class" (field_expression "uVar4._0_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_class" identifier -> field_identifier)) ;) (expression_statement "uVar4._1_1_ = param_1->e_ident_data;" (assignment_expression "uVar4._1_1_ = param_1->e_ident_data" (field_expression "uVar4._1_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_data" identifier -> field_identifier)) ;) (expression_statement "uVar4._2_1_ = param_1->e_ident_version;" (assignment_expression "uVar4._2_1_ = param_1->e_ident_version" (field_expression "uVar4._2_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_version" identifier -> field_identifier)) ;) (expression_statement "uVar4._3_1_ = param_1->e_ident_osabi;" (assignment_expression "uVar4._3_1_ = param_1->e_ident_osabi" (field_expression "uVar4._3_1_" identifier . field_identifier) = (field_expression "param_1->e_ident_osabi" identifier -> field_identifier)) ;) (expression_statement "in_stack_ffffffa0 = pEVar20;" (assignment_expression "in_stack_ffffffa0 = pEVar20" identifier = identifier) ;) (expression_statement "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);" (assignment_expression "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" identifier = (call_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd2_0009d460" * (cast_expression "(code *)PTR___gmpn_hgcd2_0009d460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" { (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" * (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar11 = pEVar20;" (assignment_expression "pEVar11 = pEVar20" identifier = identifier) ;) (expression_statement "pEVar13 = param_5;" (assignment_expression "pEVar13 = param_5" identifier = identifier) ;) })) })) }) (else_clause "else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" else (compound_statement "{\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" { (expression_statement "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26)" identifier = (cast_expression "(Elf32_Ehdr *)(0x20 - iVar26)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x20 - iVar26)" ( (binary_expression "0x20 - iVar26" number_literal - identifier) )))) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1,param_3,pEVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_1[-0xffffffff00000001].e_shnum" (subscript_expression "param_1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_1[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_1[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;" (assignment_expression "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&param_1[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_1[-1].e_shnum" & (field_expression "param_1[-1].e_shnum" (subscript_expression "param_1[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum" identifier = (cast_expression "(Elf32_Ehdr *)&param_2[-1].e_shnum" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_2[-1].e_shnum" & (field_expression "param_2[-1].e_shnum" (subscript_expression "param_2[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" identifier = identifier) ;) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" identifier = identifier) ;) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2)" identifier = (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" ( (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" * (cast_expression "(code *)PTR___gmpn_rshift_0009d560" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_2[-0xffffffff00000001].e_shnum" (subscript_expression "param_2[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)uVar4 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar4 >> 0x10)" ( (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_2[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_2[-0xffffffff00000001]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" identifier = (cast_expression "(Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" ( (binary_expression "param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" (field_expression "param_3->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" ( (binary_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1" (parenthesized_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0)" ( (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2)" * (cast_expression "(int *)((int)param_1 + (int)param_3 * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + (int)param_3 * 2 * 2)" ( (binary_expression "(int)param_1 + (int)param_3 * 2 * 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) * number_literal)) )))) != number_literal) || (binary_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" * (cast_expression "(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar3 + (int)param_3 * 2 * 2)" ( (binary_expression "(int)pEVar3 + (int)param_3 * 2 * 2" (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) * number_literal)) )))) != number_literal)) )) - number_literal) ))) )))) ;) (do_statement "do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);" do (compound_statement "{\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    }" { (if_statement "if ((int)param_3 < 3) goto LAB_00058924;" if (parenthesized_expression "((int)param_3 < 3)" ( (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00058924;" goto statement_identifier ;)) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" identifier = identifier) ;) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" identifier = identifier) ;) (expression_statement "pEVar13 = pEVar3;" (assignment_expression "pEVar13 = pEVar3" identifier = identifier) ;) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" identifier = identifier) ;) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" identifier = identifier) ;) (expression_statement "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" identifier = (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" ( (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" * (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier ))))) ;) }) while (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" ( (binary_expression "param_3 != (Elf32_Ehdr *)0x0" identifier != (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" identifier = (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" statement_identifier : (if_statement "if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" if (parenthesized_expression "(local_2c == *(Elf32_Ehdr **)puVar24)" ( (binary_expression "local_2c == *(Elf32_Ehdr **)puVar24" identifier == (pointer_expression "*(Elf32_Ehdr **)puVar24" * (cast_expression "(Elf32_Ehdr **)puVar24" ( (type_descriptor "Elf32_Ehdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return pEVar23;\n  }" { (return_statement "return pEVar23;" return identifier ;) }))) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }" if (parenthesized_expression "((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2))" ( (binary_expression "(local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)" (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    return (Elf32_Ehdr *)0x0;\n  }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" if (parenthesized_expression "((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))))" ( (binary_expression "(pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" (parenthesized_expression "(pEVar13 < local_2c)" ( (binary_expression "pEVar13 < local_2c" identifier < identifier) )) || (parenthesized_expression "((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" ( (parenthesized_expression "(local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))" ( (binary_expression "local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)" (binary_expression "local_2c == pEVar13" identifier == identifier) && (parenthesized_expression "(pEVar15 < pEVar11 != 0)" ( (binary_expression "pEVar15 < pEVar11 != 0" (binary_expression "pEVar15 < pEVar11" identifier < identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }" { (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" ( (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" - (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar15)" ( (binary_expression "pEVar11 < pEVar15" identifier < identifier) )))) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar24 + 0x44940)" * (cast_expression "(int *)(puVar24 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x44940)" ( (binary_expression "puVar24 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" ( (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 5)" ( (binary_expression "iVar25 + *(int *)local_5c * 8 + 5" (binary_expression "iVar25 + *(int *)local_5c * 8" identifier + (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" * (cast_expression "(int *)local_5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (if_statement "if (local_2c < pEVar13) goto LAB_00058c00;" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (goto_statement "goto LAB_00058c00;" goto statement_identifier ;)) }) (else_clause "else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" else (compound_statement "{\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" { (expression_statement "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" identifier = (cast_expression "(Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" ( (binary_expression "(int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" ( (binary_expression "local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)" (field_expression "local_2c->e_ident_magic_str" identifier -> field_identifier) + (parenthesized_expression "((pEVar15 < pEVar11) - 1)" ( (binary_expression "(pEVar15 < pEVar11) - 1" (parenthesized_expression "(pEVar15 < pEVar11)" ( (binary_expression "pEVar15 < pEVar11" identifier < identifier) )) - number_literal) ))) )))) )))) ;) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" identifier = (pointer_expression "*(int *)(puVar24 + 0x44940)" * (cast_expression "(int *)(puVar24 + 0x44940)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x44940)" ( (binary_expression "puVar24 + 0x44940" identifier + number_literal) ))))) ;) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" { (return_statement "return (Elf32_Ehdr *)0x0;" return (cast_expression "(Elf32_Ehdr *)0x0" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" ( (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 1)" ( (binary_expression "iVar25 + *(int *)local_5c * 8 + 1" (binary_expression "iVar25 + *(int *)local_5c * 8" identifier + (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" * (cast_expression "(int *)local_5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (if_statement "if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (compound_statement "{\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" { (labeled_statement "LAB_00058c00:\n      iVar19 = 1;" statement_identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;)) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00058c04;" goto statement_identifier ;) })) }))) (while_statement "while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" while (parenthesized_expression "(local_2c != pEVar13)" ( (binary_expression "local_2c != pEVar13" identifier != identifier) )) (compound_statement "{\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" { (if_statement "if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" if (parenthesized_expression "(local_2c < &Elf32_Ehdr_00010000)" ( (binary_expression "local_2c < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" { (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" identifier = (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" ( (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" identifier = (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" ( (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c5c;" goto statement_identifier ;) })) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" ( (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" ( (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" - (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar15)" ( (binary_expression "pEVar11 < pEVar15" identifier < identifier) )))) - (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" ( (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" if (parenthesized_expression "(pEVar13 < local_2c)" ( (binary_expression "pEVar13 < local_2c" identifier < identifier) )) (compound_statement "{\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "pEVar23 = pEVar13;" (assignment_expression "pEVar23 = pEVar13" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar15;" (assignment_expression "pEVar20 = pEVar15" identifier = identifier) ;) (if_statement "if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" if (parenthesized_expression "((int)local_2c < 0)" ( (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar23" number_literal < (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 | (int)pEVar23 << 1)" ( (binary_expression "uVar22 | (int)pEVar23 << 1" identifier | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar22 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x1f" identifier = (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" { (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" identifier = (binary_expression "uVar22 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" { (expression_statement "uVar14 = (uint)(pEVar11 < pEVar20);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar20)" identifier = (call_expression "(uint)(pEVar11 < pEVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar20)" ( (binary_expression "pEVar11 < pEVar20" identifier < identifier) )))) ;) (labeled_statement "LAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" statement_identifier : (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar20)" ( (binary_expression "(int)pEVar11 - (int)pEVar20" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" ( (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar14)" ( (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" identifier = (binary_expression "uVar22 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" else (if_statement "if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" if (parenthesized_expression "((local_2c == pEVar23) && (pEVar20 <= pEVar11))" ( (binary_expression "(local_2c == pEVar23) && (pEVar20 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" ( (binary_expression "local_2c == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar20 <= pEVar11)" ( (binary_expression "pEVar20 <= pEVar11" identifier <= identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058f3c;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));" do (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        }" { (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);" do (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          }" { (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) ;) }) while (parenthesized_expression "((local_2c == pEVar23) && (pEVar3 <= pEVar11))" ( (binary_expression "(local_2c == pEVar23) && (pEVar3 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" ( (binary_expression "local_2c == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar11)" ( (binary_expression "pEVar3 <= pEVar11" identifier <= identifier) ))) )) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);" do (compound_statement "{\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        }" { (expression_statement "uVar14 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar14 = (int)pEVar23 << 0x1f" identifier = (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 | (uint)pEVar3 >> 1)" ( (binary_expression "uVar14 | (uint)pEVar3 >> 1" identifier | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" identifier = (binary_expression "uVar22 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "(pEVar23 < local_2c)" ( (binary_expression "pEVar23 < local_2c" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" { (expression_statement "uVar14 = (uint)(pEVar11 < pEVar3);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar3)" identifier = (call_expression "(uint)(pEVar11 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar11 < pEVar3)" ( (binary_expression "pEVar11 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" statement_identifier : (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar11 - (int)pEVar3)" ( (binary_expression "(int)pEVar11 - (int)pEVar3" (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" identifier = (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" ( (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar14)" ( (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" identifier = (binary_expression "uVar22 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" else (if_statement "if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" if (parenthesized_expression "((pEVar23 == local_2c) && (pEVar3 <= pEVar11))" ( (binary_expression "(pEVar23 == local_2c) && (pEVar3 <= pEVar11)" (parenthesized_expression "(pEVar23 == local_2c)" ( (binary_expression "pEVar23 == local_2c" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar11)" ( (binary_expression "pEVar3 <= pEVar11" identifier <= identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058dd8;" goto statement_identifier ;) })))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" identifier = (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" if (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" ( (binary_expression "local_2c < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" { (expression_statement "iVar17 = iVar19 * uVar22 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar22 + iVar17" identifier = (binary_expression "iVar19 * uVar22 + iVar17" (binary_expression "iVar19 * uVar22" identifier * identifier) + identifier)) ;) (expression_statement "iVar18 = iVar26 * uVar22 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar22 + iVar18" identifier = (binary_expression "iVar26 * uVar22 + iVar18" (binary_expression "iVar26 * uVar22" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar19 * uVar22;" (assignment_expression "iVar16 = iVar19 * uVar22" identifier = (binary_expression "iVar19 * uVar22" identifier * identifier)) ;) (expression_statement "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3))" identifier = (pointer_expression "*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) ))) ))))) ;) (expression_statement "iVar9 = iVar26 * uVar22;" (assignment_expression "iVar9 = iVar26 * uVar22" identifier = (binary_expression "iVar26 * uVar22" identifier * identifier)) ;) }) (else_clause "else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" else (compound_statement "{\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5)" identifier = (pointer_expression "*(byte *)(iVar25 + uVar21 * 8 + 5)" * (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" ( (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar16 = iVar19;" (assignment_expression "iVar16 = iVar19" identifier = identifier) ;) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" identifier = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + iVar9;" (assignment_expression "iVar18 = iVar18 + iVar9" identifier = (binary_expression "iVar18 + iVar9" identifier + identifier)) ;) (expression_statement "iVar17 = iVar17 + iVar16;" (assignment_expression "iVar17 = iVar17 + iVar16" identifier = (binary_expression "iVar17 + iVar16" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)bVar2;" (assignment_expression "uVar21 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_2c == pEVar13) break;" if (parenthesized_expression "(local_2c == pEVar13)" ( (binary_expression "local_2c == pEVar13" identifier == identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" statement_identifier : (if_statement "if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" if (parenthesized_expression "(pEVar13 < &Elf32_Ehdr_00010000)" ( (binary_expression "pEVar13 < &Elf32_Ehdr_00010000" identifier < (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) )) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" { (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" identifier = (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" ( (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" identifier = (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" ( (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) + (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (goto_statement "goto LAB_00058c8c;" goto statement_identifier ;) }))) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" ( (binary_expression "(int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(pEVar15 < pEVar11) - (int)local_2c)" ( (binary_expression "-(uint)(pEVar15 < pEVar11) - (int)local_2c" (unary_expression "-(uint)(pEVar15 < pEVar11)" - (call_expression "(uint)(pEVar15 < pEVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar11)" ( (binary_expression "pEVar15 < pEVar11" identifier < identifier) )))) - (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) break;" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" ( (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" identifier = (binary_expression "uVar21 * 8" identifier * number_literal)) ;) (if_statement "if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" if (parenthesized_expression "(local_2c < pEVar13)" ( (binary_expression "local_2c < pEVar13" identifier < identifier) )) (compound_statement "{\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "pEVar23 = local_2c;" (assignment_expression "pEVar23 = local_2c" identifier = identifier) ;) (expression_statement "pEVar20 = pEVar11;" (assignment_expression "pEVar20 = pEVar11" identifier = identifier) ;) (if_statement "if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" if (parenthesized_expression "((int)pEVar13 < 0)" ( (binary_expression "(int)pEVar13 < 0" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" for ( ; (binary_expression "-1 < (int)pEVar23" number_literal < (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar21 | (int)pEVar23 << 1)" ( (binary_expression "uVar21 | (int)pEVar23 << 1" identifier | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ) (compound_statement "{\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" { (expression_statement "uVar21 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar21 = (uint)pEVar20 >> 0x1f" identifier = (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);" do (compound_statement "{\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" { (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" { (expression_statement "uVar22 = (uint)(pEVar15 < pEVar20);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar20)" identifier = (call_expression "(uint)(pEVar15 < pEVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar20)" ( (binary_expression "pEVar15 < pEVar20" identifier < identifier) )))) ;) (labeled_statement "LAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar20)" ( (binary_expression "(int)pEVar15 - (int)pEVar20" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar22)" ( (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" identifier = (binary_expression "uVar21 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" else (if_statement "if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" if (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar20 <= pEVar15))" ( (binary_expression "(pEVar13 == pEVar23) && (pEVar20 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" ( (binary_expression "pEVar13 == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar20 <= pEVar15)" ( (binary_expression "pEVar20 <= pEVar15" identifier <= identifier) ))) )) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005900c;" goto statement_identifier ;) })))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" ( (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" else (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" { (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));" do (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        }" { (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);" do (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          }" { (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar20 << 1)" ( (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" ( (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) ;) }) while (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar3 <= pEVar15))" ( (binary_expression "(pEVar13 == pEVar23) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" ( (binary_expression "pEVar13 == pEVar23" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar15)" ( (binary_expression "pEVar3 <= pEVar15" identifier <= identifier) ))) )) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);" do (compound_statement "{\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        }" { (expression_statement "uVar22 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar22 = (int)pEVar23 << 0x1f" identifier = (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pEVar23 >> 1)" ( (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" identifier = (cast_expression "(Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 | (uint)pEVar3 >> 1)" ( (binary_expression "uVar22 | (uint)pEVar3 >> 1" identifier | (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) )))) ;) (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" identifier = (binary_expression "uVar21 << 1" identifier << number_literal)) ;) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "(pEVar23 < pEVar13)" ( (binary_expression "pEVar23 < pEVar13" identifier < identifier) )) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" { (expression_statement "uVar22 = (uint)(pEVar15 < pEVar3);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar3)" identifier = (call_expression "(uint)(pEVar15 < pEVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar15 < pEVar3)" ( (binary_expression "pEVar15 < pEVar3" identifier < identifier) )))) ;) (labeled_statement "LAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" statement_identifier : (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 - (int)pEVar3)" ( (binary_expression "(int)pEVar15 - (int)pEVar3" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pEVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" identifier = (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" ( (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)pEVar23 - uVar22)" ( (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" - (cast_expression "(int)pEVar23" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) ))) )))) ;) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" identifier = (binary_expression "uVar21 | 1" identifier | number_literal)) ;) }) (else_clause "else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" else (if_statement "if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" if (parenthesized_expression "((pEVar23 == pEVar13) && (pEVar3 <= pEVar15))" ( (binary_expression "(pEVar23 == pEVar13) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar23 == pEVar13)" ( (binary_expression "pEVar23 == pEVar13" identifier == identifier) )) && (parenthesized_expression "(pEVar3 <= pEVar15)" ( (binary_expression "pEVar3 <= pEVar15" identifier <= identifier) ))) )) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00058d20;" goto statement_identifier ;) })))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) }))) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" if (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" ( (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" identifier < (cast_expression "(Elf32_Ehdr *)0x2" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" { (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" identifier = (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" identifier = (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) ))) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" identifier = (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" identifier * identifier) + identifier)) ;) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" identifier = (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" identifier * identifier) + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" ( (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" identifier + identifier) + (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) ))) ))))) ;) }) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" else (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" { (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" identifier = (binary_expression "iVar19 + iVar17" identifier + identifier)) ;) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" identifier = (binary_expression "iVar26 + iVar18" identifier + identifier)) ;) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar25 + iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + iVar9 + 1)" ( (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) })) (labeled_statement "LAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" statement_identifier : (expression_statement "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 0x18)" ( (binary_expression "(uint)iVar19 >> 0x18" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[0]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 0x10)" ( (binary_expression "(uint)iVar19 >> 0x10" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[1]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar19 >> 8)" ( (binary_expression "(uint)iVar19 >> 8" (cast_expression "(uint)iVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[2]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_class" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x18)" ( (binary_expression "(uint)iVar17 >> 0x18" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10)" (field_expression "in_stack_ffffffa0->e_ident_data" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 0x10)" ( (binary_expression "(uint)iVar17 >> 0x10" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8)" (field_expression "in_stack_ffffffa0->e_ident_version" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar17 >> 8)" ( (binary_expression "(uint)iVar17 >> 8" (cast_expression "(uint)iVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_osabi = (char)iVar17;" (assignment_expression "in_stack_ffffffa0->e_ident_osabi = (char)iVar17" (field_expression "in_stack_ffffffa0->e_ident_osabi" identifier -> field_identifier) = (cast_expression "(char)iVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_abiversion" identifier -> field_identifier) = (cast_expression "(char)((uint)iVar26 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 0x18)" ( (binary_expression "(uint)iVar26 >> 0x18" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[0]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar26 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 0x10)" ( (binary_expression "(uint)iVar26 >> 0x10" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[1]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)iVar26 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar26 >> 8)" ( (binary_expression "(uint)iVar26 >> 8" (cast_expression "(uint)iVar26" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;" (assignment_expression "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26" (subscript_expression "in_stack_ffffffa0->e_ident_pad[2]" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)iVar26" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;" (assignment_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18" (pointer_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3)" * (cast_expression "(int *)(in_stack_ffffffa0->e_ident_pad + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_ffffffa0->e_ident_pad + 3)" ( (binary_expression "in_stack_ffffffa0->e_ident_pad + 3" (field_expression "in_stack_ffffffa0->e_ident_pad" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);" (assignment_expression "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18)" (field_expression "local_5c->e_ident_magic_num" identifier -> field_identifier) = (cast_expression "(char)(uVar21 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);" (assignment_expression "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10)" (subscript_expression "local_5c->e_ident_magic_str[0]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(uVar21 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);" (assignment_expression "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8)" (subscript_expression "local_5c->e_ident_magic_str[1]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)(uVar21 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "local_5c->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "local_5c->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "local_5c->e_ident_magic_str[2]" (field_expression "local_5c->e_ident_magic_str" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)uVar21" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (return_statement "return (Elf32_Ehdr *)0x1;" return (cast_expression "(Elf32_Ehdr *)0x1" ( (type_descriptor "Elf32_Ehdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 = (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 ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (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)) + LIT) <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * LIT) )))) ;) (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 = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (field_expression IDENT -> field_identifier) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT) + (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 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 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) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) }))) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (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 ( IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (while_statement while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) >> LIT) )) + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (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 ( IDENT ))))) ;) (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 *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (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 = (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 (parenthesized_expression ( (binary_expression IDENT + LIT) )) / LIT) )) * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 = (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 ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (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) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_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 = LIT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT << LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - 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 != LIT) )) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - 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 != LIT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_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 = LIT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT << LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - 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 != LIT) )) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - 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 != LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) }))) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression 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 *)) ) (pointer_expression & IDENT))) ;) (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 *))) ) (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 *))) ) IDENT))) ;) (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 = 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 { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 LIT - IDENT) )))) ;) (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 , IDENT )))) ;) (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 *)) ) (pointer_expression & (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) ;) (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 )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) * LIT)) )))) != LIT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) * LIT)) )))) != LIT)) )) - LIT) ))) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (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 = (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 ( 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 *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return 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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_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 *)) ) LIT)) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (binary_expression IDENT < 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) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - (cast_expression ( (type_descriptor TYPE) ) 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 < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (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) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (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) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression 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 IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (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) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_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 = LIT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) )))) ) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (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) - (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) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (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) >> LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (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) ) IDENT) << 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) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (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) - (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) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression 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 = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression 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 (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * 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 (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_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 = LIT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) )))) ) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (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) - (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) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (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) >> LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (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) ) IDENT) << 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) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (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) - (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) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression 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) )) ;) }))) (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 (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) }))) })) (labeled_statement statement_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 (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 (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 (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 (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "Elf32_Ehdr *\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)\n\n{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" (type_identifier "Elf32_Ehdr") (pointer_declarator "*\n__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" (* "*") (function_declarator "__gmpn_hgcd_appr(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" (identifier "__gmpn_hgcd_appr") (parameter_list "(Elf32_Ehdr *param_1,Elf32_Ehdr *param_2,Elf32_Ehdr *param_3,Elf32_Ehdr *param_4,\n                Elf32_Ehdr *param_5)" (( "(") (parameter_declaration "Elf32_Ehdr *param_1" (type_identifier "Elf32_Ehdr") (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 "Elf32_Ehdr *param_4" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "Elf32_Ehdr *param_5" (type_identifier "Elf32_Ehdr") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  byte bVar2;\n  Elf32_Ehdr *pEVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  Elf32_Ehdr *pEVar7;\n  byte *pbVar8;\n  int iVar9;\n  byte *pbVar10;\n  Elf32_Ehdr *pEVar11;\n  uint uVar12;\n  Elf32_Ehdr *pEVar13;\n  uint uVar14;\n  Elf32_Ehdr *pEVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Elf32_Ehdr *pEVar20;\n  uint uVar21;\n  uint uVar22;\n  Elf32_Ehdr *pEVar23;\n  undefined *puVar24;\n  int iVar25;\n  int iVar26;\n  Elf32_Ehdr *in_stack_ffffffa0;\n  Elf32_Ehdr *local_5c;\n  Elf32_Ehdr *local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;\n  if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }\n  goto LAB_00058820;\n  while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }\nLAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;\n  iVar25 = iVar26;\n  if ((int)param_3 < 3) goto LAB_00058870;\n  goto LAB_000586e4;\nLAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }\n  goto LAB_00058b84;\nLAB_00058870:\n  pEVar3 = param_2;\n  if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }\nLAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }\n  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }\n  while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }\nLAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);\n  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);\n  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);\n  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;\n  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);\n  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);\n  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);\n  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;\n  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);\n  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);\n  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);\n  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;\n  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;\n  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);\n  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);\n  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);\n  local_5c->e_ident_magic_str[2] = (char)uVar21;\n  return (Elf32_Ehdr *)0x1;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "Elf32_Ehdr *pEVar3;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar3" (* "*") (identifier "pEVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "Elf32_Ehdr *pEVar7;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar7" (* "*") (identifier "pEVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "Elf32_Ehdr *pEVar11;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar11" (* "*") (identifier "pEVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "Elf32_Ehdr *pEVar13;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar13" (* "*") (identifier "pEVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "Elf32_Ehdr *pEVar15;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar15" (* "*") (identifier "pEVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "Elf32_Ehdr *pEVar20;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar20" (* "*") (identifier "pEVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "Elf32_Ehdr *pEVar23;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*pEVar23" (* "*") (identifier "pEVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "Elf32_Ehdr *in_stack_ffffffa0;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*in_stack_ffffffa0" (* "*") (identifier "in_stack_ffffffa0")) (; ";")) (declaration "Elf32_Ehdr *local_5c;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "Elf32_Ehdr *local_2c;" (type_identifier "Elf32_Ehdr") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_guard_0009d540")) (; ";")) (expression_statement "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" (identifier "local_2c") (= "=") (pointer_expression "*(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" (* "*") (cast_expression "(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0009d540")))) (; ";")) (if_statement "if ((int)param_3 < 3) {\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }\n  else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" (if "if") (parenthesized_expression "((int)param_3 < 3)" (( "(") (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n    pEVar23 = (Elf32_Ehdr *)0x0;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    pEVar15 = param_4;\n  }" ({ "{") (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" (identifier "pEVar11") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" (identifier "pEVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pEVar15 = param_4;" (assignment_expression "pEVar15 = param_4" (identifier "pEVar15") (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" (else "else") (compound_statement "{\n    iVar25 = (int)param_3 >> 1;\n    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);\n    if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }\n    pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);\n    pEVar3 = param_3;\n    pEVar23 = pEVar11;\n    if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }\n    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n    local_5c = param_5;\n    if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }\n    while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }\n  }" ({ "{") (expression_statement "iVar25 = (int)param_3 >> 1;" (assignment_expression "iVar25 = (int)param_3 >> 1" (identifier "iVar25") (= "=") (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)(iVar25 + 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)(iVar25 + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 1)" (( "(") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)param_3 < 400) {\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" (if "if") (parenthesized_expression "((int)param_3 < 400)" (( "(") (binary_expression "(int)param_3 < 400" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "400")) () ")")) (compound_statement "{\n      pEVar23 = (Elf32_Ehdr *)0x0;\n      iVar25 = 0;\nLAB_000586e4:\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n      iVar26 = iVar25;\n      if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }\n      goto LAB_00058870;\n    }" ({ "{") (expression_statement "pEVar23 = (Elf32_Ehdr *)0x0;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x0" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000586e4:\n      pEVar11 = param_1;" (statement_identifier "LAB_000586e4") (: ":") (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" (identifier "pEVar11") (= "=") (identifier "param_1")) (; ";"))) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" (identifier "pEVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" (identifier "pEVar15") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" (identifier "in_stack_ffffffa0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_step_0009d51c"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" (identifier "iVar26") (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (pEVar3 != (Elf32_Ehdr *)0x0) {\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" (if "if") (parenthesized_expression "(pEVar3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar3 != (Elf32_Ehdr *)0x0" (identifier "pEVar3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);\n        param_3 = pEVar3;\n        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }\n        goto LAB_00058864;\n      }" ({ "{") (expression_statement "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(iVar25 * 2)" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)(iVar25 * 2)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 * 2)" (( "(") (binary_expression "iVar25 * 2" (identifier "iVar25") (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" (identifier "param_3") (= "=") (identifier "pEVar3")) (; ";")) (if_statement "if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)) {\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" (if "if") (parenthesized_expression "(pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6))" (( "(") (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=\n            (undefined1 *)((int)pEVar20 << 6)" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1" (binary_expression "pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20" (field_expression "pEVar13->e_ident_magic_str" (identifier "pEVar13") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "(int)pEVar3->e_ident_magic_str * 0x20" (cast_expression "(int)pEVar3->e_ident_magic_str" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "pEVar3->e_ident_magic_str" (identifier "pEVar3") (-> "->") (field_identifier "e_ident_magic_str"))) (* "*") (number_literal "0x20"))) (+ "+") (number_literal "-1")) (<= "<=") (cast_expression "(undefined1 *)((int)pEVar20 << 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 << 6)" (( "(") (binary_expression "(int)pEVar20 << 6" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (<< "<<") (number_literal "6")) () ")")))) () ")")) (compound_statement "{\n          if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }\n        }" ({ "{") (if_statement "if (iVar25 == 0) {\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }\n          else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;\n            param_3 = pEVar23;\n            if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }\n          }" ({ "{") (expression_statement "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)pEVar20->e_ident_magic_str" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "pEVar20->e_ident_magic_str" (identifier "pEVar20") (-> "->") (field_identifier "e_ident_magic_str")))) (; ";")) (expression_statement "param_3 = pEVar23;" (assignment_expression "param_3 = pEVar23" (identifier "param_3") (= "=") (identifier "pEVar23")) (; ";")) (if_statement "if (pEVar23 != pEVar3) {\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" (if "if") (parenthesized_expression "(pEVar23 != pEVar3)" (( "(") (binary_expression "pEVar23 != pEVar3" (identifier "pEVar23") (!= "!=") (identifier "pEVar3")) () ")")) (compound_statement "{\n              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));\n              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;\n              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);\n              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;\n              pEVar7 = pEVar15;\n              do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);\n            }" ({ "{") (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar3 + (-1 - (int)pEVar20))" (( "(") (binary_expression "(int)pEVar3 + (-1 - (int)pEVar20)" (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3")) (+ "+") (parenthesized_expression "(-1 - (int)pEVar20)" (( "(") (binary_expression "-1 - (int)pEVar20" (number_literal "-1") (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))) () ")"))) () ")")))) (; ";")) (expression_statement "pbVar8 = pEVar3[0x13b13b1].e_ident_pad;" (assignment_expression "pbVar8 = pEVar3[0x13b13b1].e_ident_pad" (identifier "pbVar8") (= "=") (field_expression "pEVar3[0x13b13b1].e_ident_pad" (subscript_expression "pEVar3[0x13b13b1]" (identifier "pEVar3") ([ "[") (number_literal "0x13b13b1") (] "]")) (. ".") (field_identifier "e_ident_pad"))) (; ";")) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)((int)(pbVar8 + 2) * 4)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(pbVar8 + 2) * 4)" (( "(") (binary_expression "(int)(pbVar8 + 2) * 4" (cast_expression "(int)(pbVar8 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar8 + 2)" (( "(") (binary_expression "pbVar8 + 2" (identifier "pbVar8") (+ "+") (number_literal "2")) () ")"))) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1" (identifier "pbVar10") (= "=") (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_1->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_1->e_ident_pad" (identifier "param_1") (-> "->") (field_identifier "e_ident_pad")) (+ "+") (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar7 = pEVar15;" (assignment_expression "pEVar7 = pEVar15" (identifier "pEVar7") (= "=") (identifier "pEVar15")) (; ";")) (do_statement "do {\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              } while (pEVar7 != (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);\n                if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }\n                pbVar10 = pbVar10 + -4;\n                param_3 = pEVar3;\n                iVar26 = 0;\n              }" ({ "{") (expression_statement "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);" (assignment_expression "pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" (identifier "pEVar7") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar7[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar7[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar7[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar7[-1].e_shstrndx" (& "&") (field_expression "pEVar7[-1].e_shstrndx" (subscript_expression "pEVar7[-1]" (identifier "pEVar7") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*(int *)pbVar10 != 0) {\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" (if "if") (parenthesized_expression "(*(int *)pbVar10 != 0)" (( "(") (binary_expression "*(int *)pbVar10 != 0" (pointer_expression "*(int *)pbVar10" (* "*") (cast_expression "(int *)pbVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar10"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;\n                  goto LAB_00058780;\n                }" ({ "{") (expression_statement "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;" (assignment_expression "pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1" (identifier "pbVar8") (= "=") (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4 + -1" (binary_expression "param_2->e_ident_pad + (int)pbVar8 * 4" (field_expression "param_2->e_ident_pad" (identifier "param_2") (-> "->") (field_identifier "e_ident_pad")) (+ "+") (binary_expression "(int)pbVar8 * 4" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto LAB_00058780;" (goto "goto") (statement_identifier "LAB_00058780") (; ";")) (} "}"))) (expression_statement "pbVar10 = pbVar10 + -4;" (assignment_expression "pbVar10 = pbVar10 + -4" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + -4" (identifier "pbVar10") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" (identifier "param_3") (= "=") (identifier "pEVar3")) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (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"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" (else "else") (compound_statement "{\n            iVar26 = iVar25 + -1;\n            pEVar23 = pEVar20;\nLAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;\n            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);\n            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);\n            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);\n            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);\n          }" ({ "{") (expression_statement "iVar26 = iVar25 + -1;" (assignment_expression "iVar26 = iVar25 + -1" (identifier "iVar26") (= "=") (binary_expression "iVar25 + -1" (identifier "iVar25") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar23 = pEVar20;" (assignment_expression "pEVar23 = pEVar20" (identifier "pEVar23") (= "=") (identifier "pEVar20")) (; ";")) (labeled_statement "LAB_00058978:\n            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" (statement_identifier "LAB_00058978") (: ":") (expression_statement "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;" (assignment_expression "uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" (identifier "uVar21") (= "=") (binary_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5" (call_expression "(uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2)" (( "(") (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2" (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) * 0x20" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" (( "(") (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (* "*") (number_literal "2")) (- "-") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")) (* "*") (number_literal "0x20")) (+ "+") (binary_expression "iVar25 * -2" (identifier "iVar25") (* "*") (number_literal "-2"))) () ")"))) (>> ">>") (number_literal "5"))) (; ";"))) (expression_statement "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1->e_ident_magic_str + uVar21 * 4 + -1)" (( "(") (binary_expression "param_1->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_1->e_ident_magic_str + uVar21 * 4" (field_expression "param_1->e_ident_magic_str" (identifier "param_1") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);" (assignment_expression "param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" (identifier "param_2") (= "=") (cast_expression "(Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2->e_ident_magic_str + uVar21 * 4 + -1)" (( "(") (binary_expression "param_2->e_ident_magic_str + uVar21 * 4 + -1" (binary_expression "param_2->e_ident_magic_str + uVar21 * 4" (field_expression "param_2->e_ident_magic_str" (identifier "param_2") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4"))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar23 - uVar21)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar23 - uVar21)" (( "(") (binary_expression "(int)pEVar23 - uVar21" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (- "-") (identifier "uVar21")) () ")")))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);" (assignment_expression "param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21)" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar3 - uVar21)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar3 - uVar21)" (( "(") (binary_expression "(int)pEVar3 - uVar21" (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3")) (- "-") (identifier "uVar21")) () ")")))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00058864;" (goto "goto") (statement_identifier "LAB_00058864") (; ";")) (} "}"))) (goto_statement "goto LAB_00058870;" (goto "goto") (statement_identifier "LAB_00058870") (; ";")) (} "}"))) (expression_statement "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)\n              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_reduce_0009d110)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_reduce_0009d110" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_reduce_0009d110" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_reduce_0009d110"))) () ")")) (argument_list "(param_4,param_1,param_2,param_3,iVar25)" (( "(") (identifier "param_4") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "iVar25") () ")"))))) (; ";")) (expression_statement "pEVar3 = param_3;" (assignment_expression "pEVar3 = param_3" (identifier "pEVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pEVar23 = pEVar11;" (assignment_expression "pEVar23 = pEVar11" (identifier "pEVar23") (= "=") (identifier "pEVar11")) (; ";")) (if_statement "if (pEVar11 != (Elf32_Ehdr *)0x0) {\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }" (if "if") (parenthesized_expression "(pEVar11 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar11 != (Elf32_Ehdr *)0x0" (identifier "pEVar11") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pEVar23 = (Elf32_Ehdr *)0x1;\n      pEVar3 = pEVar11;\n    }" ({ "{") (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pEVar3 = pEVar11;" (assignment_expression "pEVar3 = pEVar11" (identifier "pEVar3") (= "=") (identifier "pEVar11")) (; ";")) (} "}"))) (while_statement "while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" (while "while") (parenthesized_expression "(((int)param_3 * 3 >> 2) + 1 < (int)pEVar3)" (( "(") (binary_expression "((int)param_3 * 3 >> 2) + 1 < (int)pEVar3" (binary_expression "((int)param_3 * 3 >> 2) + 1" (parenthesized_expression "((int)param_3 * 3 >> 2)" (( "(") (binary_expression "(int)param_3 * 3 >> 2" (binary_expression "(int)param_3 * 3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "3")) (>> ">>") (number_literal "2")) () ")")) (+ "+") (number_literal "1")) (< "<") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")) (compound_statement "{\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" ({ "{") (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" (identifier "local_5c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" (identifier "pEVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" (identifier "pEVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" (identifier "pEVar15") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" (identifier "in_stack_ffffffa0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_step_0009d51c"))) () ")")) (argument_list "(pEVar3)" (( "(") (identifier "pEVar3") () ")"))))) (; ";")) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;" (if "if") (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" (identifier "pEVar3") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00058820;" (goto "goto") (statement_identifier "LAB_00058820") (; ";"))) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}"))) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" (identifier "local_5c") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (iVar25 + 3 < (int)pEVar3) {\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" (if "if") (parenthesized_expression "(iVar25 + 3 < (int)pEVar3)" (( "(") (binary_expression "iVar25 + 3 < (int)pEVar3" (binary_expression "iVar25 + 3" (identifier "iVar25") (+ "+") (number_literal "3")) (< "<") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")) (compound_statement "{\n      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;\n      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;\n      iVar25 = (int)pEVar3 - iVar26;\n      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);\n      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);\n      pEVar15 = pEVar11;\n      in_stack_ffffffa0 = pEVar13;\n      iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }\n    }" ({ "{") (expression_statement "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0xffffffbc" (& "&") (identifier "stack0xffffffbc")))) (; ";")) (expression_statement "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;" (assignment_expression "iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1" (identifier "iVar26") (= "=") (binary_expression "((int)pEVar20 * 2 - (int)pEVar3) + 1" (parenthesized_expression "((int)pEVar20 * 2 - (int)pEVar3)" (( "(") (binary_expression "(int)pEVar20 * 2 - (int)pEVar3" (binary_expression "(int)pEVar20 * 2" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (* "*") (number_literal "2")) (- "-") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar25 = (int)pEVar3 - iVar26;" (assignment_expression "iVar25 = (int)pEVar3 - iVar26" (identifier "iVar25") (= "=") (binary_expression "(int)pEVar3 - iVar26" (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3")) (- "-") (identifier "iVar26"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_matrix_init_0009d3bc"))) () ")")) (argument_list "(pEVar11,iVar25,param_5)" (( "(") (identifier "pEVar11") (, ",") (identifier "iVar25") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);" (assignment_expression "pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7)" (( "(") (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7" (binary_expression "param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10" (field_expression "param_5->e_ident_pad" (identifier "param_5") (-> "->") (field_identifier "e_ident_pad")) (+ "+") (binary_expression "((iVar25 + 1) / 2) * 0x10" (parenthesized_expression "((iVar25 + 1) / 2)" (( "(") (binary_expression "(iVar25 + 1) / 2" (parenthesized_expression "(iVar25 + 1)" (( "(") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1")) () ")")) (/ "/") (number_literal "2")) () ")")) (* "*") (number_literal "0x10"))) (+ "+") (number_literal "7")) () ")")))) (; ";")) (expression_statement "pEVar15 = pEVar11;" (assignment_expression "pEVar15 = pEVar11" (identifier "pEVar15") (= "=") (identifier "pEVar11")) (; ";")) (expression_statement "in_stack_ffffffa0 = pEVar13;" (assignment_expression "in_stack_ffffffa0 = pEVar13" (identifier "in_stack_ffffffa0") (= "=") (identifier "pEVar13")) (; ";")) (expression_statement "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);" (assignment_expression "iVar25 = __gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" (identifier "iVar25") (= "=") (call_expression "__gmpn_hgcd_appr((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" (identifier "__gmpn_hgcd_appr") (argument_list "((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25)" (( "(") (binary_expression "(int)param_1 + iVar26 * 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4"))) (, ",") (binary_expression "(int)param_2 + iVar26 * 4" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (binary_expression "iVar26 * 4" (identifier "iVar26") (* "*") (number_literal "4"))) (, ",") (identifier "iVar25") () ")")))) (; ";")) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        goto LAB_00058820;\n      }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_matrix_mul_0009d1e8"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00058820;" (goto "goto") (statement_identifier "LAB_00058820") (; ";")) (} "}"))) (} "}"))) (while_statement "while( true ) {\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pEVar11 = param_1;\n      pEVar13 = param_2;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);\n      if (pEVar3 == (Elf32_Ehdr *)0x0) break;\n      pEVar23 = (Elf32_Ehdr *)0x1;\n    }" ({ "{") (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" (identifier "pEVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pEVar13 = param_2;" (assignment_expression "pEVar13 = param_2" (identifier "pEVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" (identifier "pEVar15") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" (identifier "in_stack_ffffffa0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_step_0009d51c"))) () ")")) (argument_list "(pEVar3)" (( "(") (identifier "pEVar3") () ")"))))) (; ";")) (if_statement "if (pEVar3 == (Elf32_Ehdr *)0x0) break;" (if "if") (parenthesized_expression "(pEVar3 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar3 == (Elf32_Ehdr *)0x0" (identifier "pEVar3") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00058820;" (goto "goto") (statement_identifier "LAB_00058820") (; ";")) (while_statement "while( true ) {\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    pbVar8 = pbVar8 + -4;\n    param_3 = pEVar3;\n    iVar26 = 0;\n    if (pEVar15 == (Elf32_Ehdr *)0x0) break;\nLAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);\n    if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }\n  }" ({ "{") (expression_statement "pbVar8 = pbVar8 + -4;" (assignment_expression "pbVar8 = pbVar8 + -4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + -4" (identifier "pbVar8") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "param_3 = pEVar3;" (assignment_expression "param_3 = pEVar3" (identifier "param_3") (= "=") (identifier "pEVar3")) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pEVar15 == (Elf32_Ehdr *)0x0) break;" (if "if") (parenthesized_expression "(pEVar15 == (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "pEVar15 == (Elf32_Ehdr *)0x0" (identifier "pEVar15") (== "==") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00058780:\n    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" (statement_identifier "LAB_00058780") (: ":") (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pEVar15[-1].e_shstrndx + 1)" (( "(") (binary_expression "(int)&pEVar15[-1].e_shstrndx + 1" (cast_expression "(int)&pEVar15[-1].e_shstrndx" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pEVar15[-1].e_shstrndx" (& "&") (field_expression "pEVar15[-1].e_shstrndx" (subscript_expression "pEVar15[-1]" (identifier "pEVar15") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shstrndx")))) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (*(int *)pbVar8 != 0) {\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" (if "if") (parenthesized_expression "(*(int *)pbVar8 != 0)" (( "(") (binary_expression "*(int *)pbVar8 != 0" (pointer_expression "*(int *)pbVar8" (* "*") (cast_expression "(int *)pbVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar26 = 0x1f;\n      goto LAB_00058978;\n    }" ({ "{") (expression_statement "iVar26 = 0x1f;" (assignment_expression "iVar26 = 0x1f" (identifier "iVar26") (= "=") (number_literal "0x1f")) (; ";")) (goto_statement "goto LAB_00058978;" (goto "goto") (statement_identifier "LAB_00058978") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00058864:\n  pEVar23 = (Elf32_Ehdr *)0x1;" (statement_identifier "LAB_00058864") (: ":") (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (expression_statement "iVar25 = iVar26;" (assignment_expression "iVar25 = iVar26" (identifier "iVar25") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if ((int)param_3 < 3) goto LAB_00058870;" (if "if") (parenthesized_expression "((int)param_3 < 3)" (( "(") (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "3")) () ")")) (goto_statement "goto LAB_00058870;" (goto "goto") (statement_identifier "LAB_00058870") (; ";"))) (goto_statement "goto LAB_000586e4;" (goto "goto") (statement_identifier "LAB_000586e4") (; ";")) (labeled_statement "LAB_00058c8c:\n  if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" (statement_identifier "LAB_00058c8c") (: ":") (if_statement "if (uVar22 != uVar14) {\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" (if "if") (parenthesized_expression "(uVar22 != uVar14)" (( "(") (binary_expression "uVar22 != uVar14" (identifier "uVar22") (!= "!=") (identifier "uVar14")) () ")")) (compound_statement "{\n    uVar14 = uVar14 - uVar22;\n    if (uVar14 < 0x20000) goto LAB_00058b84;\n    iVar9 = uVar21 * 8;\n    if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\nLAB_00058c5c:\n    bVar1 = uVar22 == uVar14;\n    uVar22 = uVar22 - uVar14;\n    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;\n    if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }\n    goto LAB_00058c8c;\n  }" ({ "{") (expression_statement "uVar14 = uVar14 - uVar22;" (assignment_expression "uVar14 = uVar14 - uVar22" (identifier "uVar14") (= "=") (binary_expression "uVar14 - uVar22" (identifier "uVar14") (- "-") (identifier "uVar22"))) (; ";")) (if_statement "if (uVar14 < 0x20000) goto LAB_00058b84;" (if "if") (parenthesized_expression "(uVar14 < 0x20000)" (( "(") (binary_expression "uVar14 < 0x20000" (identifier "uVar14") (< "<") (number_literal "0x20000")) () ")")) (goto_statement "goto LAB_00058b84;" (goto "goto") (statement_identifier "LAB_00058b84") (; ";"))) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" (identifier "iVar9") (= "=") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (; ";")) (if_statement "if (uVar22 < uVar14) {\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" (if "if") (parenthesized_expression "(uVar22 < uVar14)" (( "(") (binary_expression "uVar22 < uVar14" (identifier "uVar22") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n      iVar16 = 0;\n      uVar21 = uVar22;\n      if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }\n      if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }\n      uVar5 = uVar5 + 1;\n      iVar19 = iVar17 * uVar5 + iVar19;\n      iVar26 = iVar18 * uVar5 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n    }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" (identifier "uVar21") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if ((int)uVar14 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" (if "if") (parenthesized_expression "((int)uVar14 < 0)" (( "(") (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }\n        uVar5 = 0;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);\n      }" ({ "{") (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (for_statement "for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {\n          iVar16 = iVar16 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "-1 < (int)uVar21" (number_literal "-1") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) (; ";") (assignment_expression "uVar21 = uVar21 << 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 << 1" (identifier "uVar21") (<< "<<") (number_literal "1"))) () ")") (compound_statement "{\n          iVar16 = iVar16 + 1;\n        }" ({ "{") (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        } while (iVar16 != 0);" (do "do") (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }\n          uVar21 = uVar21 >> 1;\n        }" ({ "{") (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 << 1" (identifier "uVar5") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (uVar21 <= uVar14) {\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" (if "if") (parenthesized_expression "(uVar21 <= uVar14)" (( "(") (binary_expression "uVar21 <= uVar14" (identifier "uVar21") (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n            uVar14 = uVar14 - uVar21;\n            uVar5 = uVar5 | 1;\n          }" ({ "{") (expression_statement "uVar14 = uVar14 - uVar21;" (assignment_expression "uVar14 = uVar14 - uVar21" (identifier "uVar14") (= "=") (binary_expression "uVar14 - uVar21" (identifier "uVar14") (- "-") (identifier "uVar21"))) (; ";")) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 1" (identifier "uVar5") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar21 = uVar21 >> 1;" (assignment_expression "uVar21 = uVar21 >> 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 >> 1" (identifier "uVar21") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" (else "else") (compound_statement "{\n        do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);\n        uVar5 = 0;\n        uVar12 = uVar12 & 0x7fffffff;\n        do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);\n      }" ({ "{") (do_statement "do {\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        } while (uVar21 <= uVar14);" (do "do") (compound_statement "{\n          uVar12 = uVar21;\n          uVar21 = uVar12 << 1;\n          iVar16 = iVar16 + 1;\n        }" ({ "{") (expression_statement "uVar12 = uVar21;" (assignment_expression "uVar12 = uVar21" (identifier "uVar12") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uVar21 = uVar12 << 1;" (assignment_expression "uVar21 = uVar12 << 1" (identifier "uVar21") (= "=") (binary_expression "uVar12 << 1" (identifier "uVar12") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 <= uVar14)" (( "(") (binary_expression "uVar21 <= uVar14" (identifier "uVar21") (<= "<=") (identifier "uVar14")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = uVar12 & 0x7fffffff;" (assignment_expression "uVar12 = uVar12 & 0x7fffffff" (identifier "uVar12") (= "=") (binary_expression "uVar12 & 0x7fffffff" (identifier "uVar12") (& "&") (number_literal "0x7fffffff"))) (; ";")) (do_statement "do {\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        } while (iVar16 != 0);" (do "do") (compound_statement "{\n          iVar16 = iVar16 + -1;\n          uVar5 = uVar5 << 1;\n          if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }\n          uVar12 = uVar12 >> 1;\n        }" ({ "{") (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar5 = uVar5 << 1;" (assignment_expression "uVar5 = uVar5 << 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 << 1" (identifier "uVar5") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (uVar12 <= uVar14) {\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" (if "if") (parenthesized_expression "(uVar12 <= uVar14)" (( "(") (binary_expression "uVar12 <= uVar14" (identifier "uVar12") (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n            uVar14 = uVar14 - uVar12;\n            uVar5 = uVar5 | 1;\n          }" ({ "{") (expression_statement "uVar14 = uVar14 - uVar12;" (assignment_expression "uVar14 = uVar14 - uVar12" (identifier "uVar14") (= "=") (binary_expression "uVar14 - uVar12" (identifier "uVar14") (- "-") (identifier "uVar12"))) (; ";")) (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 1" (identifier "uVar5") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 >> 1;" (assignment_expression "uVar12 = uVar12 >> 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 >> 1" (identifier "uVar12") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (if_statement "if (uVar14 < 0x20000) {\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" (if "if") (parenthesized_expression "(uVar14 < 0x20000)" (( "(") (binary_expression "uVar14 < 0x20000" (identifier "uVar14") (< "<") (number_literal "0x20000")) () ")")) (compound_statement "{\n        iVar19 = iVar17 * uVar5 + iVar19;\n        iVar26 = iVar18 * uVar5 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));\n        goto LAB_00058b84;\n      }" ({ "{") (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" (identifier "iVar19") (= "=") (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" (identifier "iVar17") (* "*") (identifier "uVar5")) (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" (identifier "iVar26") (= "=") (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" (identifier "iVar18") (* "*") (identifier "uVar5")) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar5 & 3)" (( "(") (binary_expression "uVar5 & 3" (identifier "uVar5") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (goto_statement "goto LAB_00058b84;" (goto "goto") (statement_identifier "LAB_00058b84") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = iVar17 * uVar5 + iVar19;" (assignment_expression "iVar19 = iVar17 * uVar5 + iVar19" (identifier "iVar19") (= "=") (binary_expression "iVar17 * uVar5 + iVar19" (binary_expression "iVar17 * uVar5" (identifier "iVar17") (* "*") (identifier "uVar5")) (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar26 = iVar18 * uVar5 + iVar26;" (assignment_expression "iVar26 = iVar18 * uVar5 + iVar26" (identifier "iVar26") (= "=") (binary_expression "iVar18 * uVar5 + iVar26" (binary_expression "iVar18 * uVar5" (identifier "iVar18") (* "*") (identifier "uVar5")) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar5 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar5 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar5 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar5 & 3)" (( "(") (binary_expression "uVar5 & 3" (identifier "uVar5") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" (else "else") (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" ({ "{") (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" (identifier "iVar19") (= "=") (binary_expression "iVar19 + iVar17" (identifier "iVar19") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" (identifier "iVar26") (= "=") (binary_expression "iVar26 + iVar18" (identifier "iVar26") (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + 1)" (( "(") (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00058c5c:\n    bVar1 = uVar22 == uVar14;" (statement_identifier "LAB_00058c5c") (: ":") (expression_statement "bVar1 = uVar22 == uVar14;" (assignment_expression "bVar1 = uVar22 == uVar14" (identifier "bVar1") (= "=") (binary_expression "uVar22 == uVar14" (identifier "uVar22") (== "==") (identifier "uVar14"))) (; ";"))) (expression_statement "uVar22 = uVar22 - uVar14;" (assignment_expression "uVar22 = uVar22 - uVar14" (identifier "uVar22") (= "=") (binary_expression "uVar22 - uVar14" (identifier "uVar22") (- "-") (identifier "uVar14"))) (; ";")) (if_statement "if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;" (if "if") (parenthesized_expression "((bVar1) || (uVar22 < 0x20000))" (( "(") (binary_expression "(bVar1) || (uVar22 < 0x20000)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (|| "||") (parenthesized_expression "(uVar22 < 0x20000)" (( "(") (binary_expression "uVar22 < 0x20000" (identifier "uVar22") (< "<") (number_literal "0x20000")) () ")"))) () ")")) (goto_statement "goto LAB_00058b84;" (goto "goto") (statement_identifier "LAB_00058b84") (; ";"))) (if_statement "if (uVar14 < uVar22) {\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }\n    else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" (if "if") (parenthesized_expression "(uVar14 < uVar22)" (( "(") (binary_expression "uVar14 < uVar22" (identifier "uVar14") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n      iVar9 = 0;\n      uVar5 = uVar14;\n      if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }\n      uVar12 = uVar12 + 1;\n      iVar17 = iVar19 * uVar12 + iVar17;\n      iVar18 = iVar26 * uVar12 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n    }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if ((int)uVar22 < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" (if "if") (parenthesized_expression "((int)uVar22 < 0)" (( "(") (binary_expression "(int)uVar22 < 0" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }\n        uVar12 = 0;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);\n      }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (for_statement "for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {\n          iVar9 = iVar9 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "-1 < (int)uVar5" (number_literal "-1") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) (; ";") (assignment_expression "uVar5 = uVar5 << 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 << 1" (identifier "uVar5") (<< "<<") (number_literal "1"))) () ")") (compound_statement "{\n          iVar9 = iVar9 + 1;\n        }" ({ "{") (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        } while (iVar9 != 0);" (do "do") (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }\n          uVar5 = uVar5 >> 1;\n        }" ({ "{") (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 << 1" (identifier "uVar12") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (uVar5 <= uVar22) {\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" (if "if") (parenthesized_expression "(uVar5 <= uVar22)" (( "(") (binary_expression "uVar5 <= uVar22" (identifier "uVar5") (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n            uVar22 = uVar22 - uVar5;\n            uVar12 = uVar12 | 1;\n          }" ({ "{") (expression_statement "uVar22 = uVar22 - uVar5;" (assignment_expression "uVar22 = uVar22 - uVar5" (identifier "uVar22") (= "=") (binary_expression "uVar22 - uVar5" (identifier "uVar22") (- "-") (identifier "uVar5"))) (; ";")) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 | 1" (identifier "uVar12") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 >> 1;" (assignment_expression "uVar5 = uVar5 >> 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 1" (identifier "uVar5") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" (else "else") (compound_statement "{\n        do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);\n        uVar12 = 0;\n        uVar6 = uVar6 & 0x7fffffff;\n        do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);\n      }" ({ "{") (do_statement "do {\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        } while (uVar5 <= uVar22);" (do "do") (compound_statement "{\n          uVar6 = uVar5;\n          uVar5 = uVar6 << 1;\n          iVar9 = iVar9 + 1;\n        }" ({ "{") (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" (identifier "uVar6") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = uVar6 << 1;" (assignment_expression "uVar5 = uVar6 << 1" (identifier "uVar5") (= "=") (binary_expression "uVar6 << 1" (identifier "uVar6") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 <= uVar22)" (( "(") (binary_expression "uVar5 <= uVar22" (identifier "uVar5") (<= "<=") (identifier "uVar22")) () ")")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = uVar6 & 0x7fffffff;" (assignment_expression "uVar6 = uVar6 & 0x7fffffff" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0x7fffffff" (identifier "uVar6") (& "&") (number_literal "0x7fffffff"))) (; ";")) (do_statement "do {\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        } while (iVar9 != 0);" (do "do") (compound_statement "{\n          iVar9 = iVar9 + -1;\n          uVar12 = uVar12 << 1;\n          if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }\n          uVar6 = uVar6 >> 1;\n        }" ({ "{") (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = uVar12 << 1;" (assignment_expression "uVar12 = uVar12 << 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 << 1" (identifier "uVar12") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (uVar6 <= uVar22) {\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" (if "if") (parenthesized_expression "(uVar6 <= uVar22)" (( "(") (binary_expression "uVar6 <= uVar22" (identifier "uVar6") (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n            uVar22 = uVar22 - uVar6;\n            uVar12 = uVar12 | 1;\n          }" ({ "{") (expression_statement "uVar22 = uVar22 - uVar6;" (assignment_expression "uVar22 = uVar22 - uVar6" (identifier "uVar22") (= "=") (binary_expression "uVar22 - uVar6" (identifier "uVar22") (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "uVar12 = uVar12 | 1;" (assignment_expression "uVar12 = uVar12 | 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 | 1" (identifier "uVar12") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar6 = uVar6 >> 1;" (assignment_expression "uVar6 = uVar6 >> 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 >> 1" (identifier "uVar6") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" (identifier "iVar9") (= "=") (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar22 < 0x20000) {\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" (if "if") (parenthesized_expression "(uVar22 < 0x20000)" (( "(") (binary_expression "uVar22 < 0x20000" (identifier "uVar22") (< "<") (number_literal "0x20000")) () ")")) (compound_statement "{\n        iVar17 = iVar19 * uVar12 + iVar17;\n        iVar18 = iVar26 * uVar12 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));\n        goto LAB_00058b84;\n      }" ({ "{") (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" (identifier "iVar17") (= "=") (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" (identifier "iVar19") (* "*") (identifier "uVar12")) (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" (identifier "iVar18") (= "=") (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" (identifier "iVar26") (* "*") (identifier "uVar12")) (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar12 & 3)" (( "(") (binary_expression "uVar12 & 3" (identifier "uVar12") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (goto_statement "goto LAB_00058b84;" (goto "goto") (statement_identifier "LAB_00058b84") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar19 * uVar12 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar12 + iVar17" (identifier "iVar17") (= "=") (binary_expression "iVar19 * uVar12 + iVar17" (binary_expression "iVar19 * uVar12" (identifier "iVar19") (* "*") (identifier "uVar12")) (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar18 = iVar26 * uVar12 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar12 + iVar18" (identifier "iVar18") (= "=") (binary_expression "iVar26 * uVar12 + iVar18" (binary_expression "iVar26 * uVar12" (identifier "iVar26") (* "*") (identifier "uVar12")) (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar12 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar12 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar12 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar12 & 3)" (( "(") (binary_expression "uVar12 & 3" (identifier "uVar12") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" (else "else") (compound_statement "{\n      iVar17 = iVar17 + iVar19;\n      iVar18 = iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);\n    }" ({ "{") (expression_statement "iVar17 = iVar17 + iVar19;" (assignment_expression "iVar17 = iVar17 + iVar19" (identifier "iVar17") (= "=") (binary_expression "iVar17 + iVar19" (identifier "iVar17") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar18 = iVar18 + iVar26;" (assignment_expression "iVar18 = iVar18 + iVar26" (identifier "iVar18") (= "=") (binary_expression "iVar18 + iVar26" (identifier "iVar18") (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + uVar21 * 8 + 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" (( "(") (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" (identifier "iVar25") (+ "+") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (} "}")))) (goto_statement "goto LAB_00058c8c;" (goto "goto") (statement_identifier "LAB_00058c8c") (; ";")) (} "}")))) (goto_statement "goto LAB_00058b84;" (goto "goto") (statement_identifier "LAB_00058b84") (; ";")) (labeled_statement "LAB_00058870:\n  pEVar3 = param_2;" (statement_identifier "LAB_00058870") (: ":") (expression_statement "pEVar3 = param_2;" (assignment_expression "pEVar3 = param_2" (identifier "pEVar3") (= "=") (identifier "param_2")) (; ";"))) (if_statement "if (iVar26 == 0) {\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }\n  else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00058924:\n    local_5c = param_5;\n    if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_00058924:\n    local_5c = param_5;" (statement_identifier "LAB_00058924") (: ":") (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" (identifier "local_5c") (= "=") (identifier "param_5")) (; ";"))) (if_statement "if (param_3 == (Elf32_Ehdr *)0x2) {\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" (if "if") (parenthesized_expression "(param_3 == (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "param_3 == (Elf32_Ehdr *)0x2" (identifier "param_3") (== "==") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;\n      pEVar15 = *(Elf32_Ehdr **)pEVar3;\n      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;\n      pEVar11 = *(Elf32_Ehdr **)param_1;\n      uVar4._0_1_ = param_1->e_ident_class;\n      uVar4._1_1_ = param_1->e_ident_data;\n      uVar4._2_1_ = param_1->e_ident_version;\n      uVar4._3_1_ = param_1->e_ident_osabi;\n      in_stack_ffffffa0 = pEVar20;\n      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);\n      if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }\n    }" ({ "{") (expression_statement "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;" (assignment_expression "pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)&stack0xffffffbc" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0xffffffbc" (& "&") (identifier "stack0xffffffbc")))) (; ";")) (expression_statement "pEVar15 = *(Elf32_Ehdr **)pEVar3;" (assignment_expression "pEVar15 = *(Elf32_Ehdr **)pEVar3" (identifier "pEVar15") (= "=") (pointer_expression "*(Elf32_Ehdr **)pEVar3" (* "*") (cast_expression "(Elf32_Ehdr **)pEVar3" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pEVar3")))) (; ";")) (expression_statement "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;" (assignment_expression "pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class" (identifier "pEVar13") (= "=") (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 "pEVar11 = *(Elf32_Ehdr **)param_1;" (assignment_expression "pEVar11 = *(Elf32_Ehdr **)param_1" (identifier "pEVar11") (= "=") (pointer_expression "*(Elf32_Ehdr **)param_1" (* "*") (cast_expression "(Elf32_Ehdr **)param_1" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "uVar4._0_1_ = param_1->e_ident_class;" (assignment_expression "uVar4._0_1_ = param_1->e_ident_class" (field_expression "uVar4._0_1_" (identifier "uVar4") (. ".") (field_identifier "_0_1_")) (= "=") (field_expression "param_1->e_ident_class" (identifier "param_1") (-> "->") (field_identifier "e_ident_class"))) (; ";")) (expression_statement "uVar4._1_1_ = param_1->e_ident_data;" (assignment_expression "uVar4._1_1_ = param_1->e_ident_data" (field_expression "uVar4._1_1_" (identifier "uVar4") (. ".") (field_identifier "_1_1_")) (= "=") (field_expression "param_1->e_ident_data" (identifier "param_1") (-> "->") (field_identifier "e_ident_data"))) (; ";")) (expression_statement "uVar4._2_1_ = param_1->e_ident_version;" (assignment_expression "uVar4._2_1_ = param_1->e_ident_version" (field_expression "uVar4._2_1_" (identifier "uVar4") (. ".") (field_identifier "_2_1_")) (= "=") (field_expression "param_1->e_ident_version" (identifier "param_1") (-> "->") (field_identifier "e_ident_version"))) (; ";")) (expression_statement "uVar4._3_1_ = param_1->e_ident_osabi;" (assignment_expression "uVar4._3_1_ = param_1->e_ident_osabi" (field_expression "uVar4._3_1_" (identifier "uVar4") (. ".") (field_identifier "_3_1_")) (= "=") (field_expression "param_1->e_ident_osabi" (identifier "param_1") (-> "->") (field_identifier "e_ident_osabi"))) (; ";")) (expression_statement "in_stack_ffffffa0 = pEVar20;" (assignment_expression "in_stack_ffffffa0 = pEVar20" (identifier "in_stack_ffffffa0") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);" (assignment_expression "iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" (identifier "iVar25") (= "=") (call_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd2_0009d460)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd2_0009d460" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd2_0009d460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd2_0009d460"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (iVar25 != 0) {\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);\n        pEVar23 = (Elf32_Ehdr *)0x1;\n        pEVar11 = pEVar20;\n        pEVar13 = param_5;\n      }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);" (call_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_matrix_mul_1_0009d3f4"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pEVar11 = pEVar20;" (assignment_expression "pEVar11 = pEVar20" (identifier "pEVar11") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "pEVar13 = param_5;" (assignment_expression "pEVar13 = param_5" (identifier "pEVar13") (= "=") (identifier "param_5")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" (else "else") (compound_statement "{\n    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);\n    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;\n    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;\n    pEVar11 = param_2;\n    pEVar13 = param_3;\n    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);\n    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);\n    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;\n    param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));\n    do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);\n    pEVar23 = (Elf32_Ehdr *)0x1;\n  }" ({ "{") (expression_statement "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)(0x20 - iVar26)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x20 - iVar26)" (( "(") (binary_expression "0x20 - iVar26" (number_literal "0x20") (- "-") (identifier "iVar26")) () ")")))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" (( "(") (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" (* "*") (cast_expression "(code *)PTR___gmpn_rshift_0009d560" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_rshift_0009d560"))) () ")")) (argument_list "(param_1,param_1,param_3,pEVar15)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "pEVar15") () ")")))) (; ";")) (expression_statement "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_1[-0xffffffff00000001].e_shnum" (subscript_expression "param_1[-0xffffffff00000001]" (identifier "param_1") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shnum")) (= "=") (cast_expression "(short)((uint)uVar4 >> 0x10)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((uint)uVar4 >> 0x10)" (( "(") (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_1[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_1[-0xffffffff00000001]" (identifier "param_1") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shstrndx")) (= "=") (cast_expression "(short)uVar4" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;" (assignment_expression "param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum" (identifier "param_1") (= "=") (cast_expression "(Elf32_Ehdr *)&param_1[-1].e_shnum" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&param_1[-1].e_shnum" (& "&") (field_expression "param_1[-1].e_shnum" (subscript_expression "param_1[-1]" (identifier "param_1") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;" (assignment_expression "pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)&param_2[-1].e_shnum" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&param_2[-1].e_shnum" (& "&") (field_expression "param_2[-1].e_shnum" (subscript_expression "param_2[-1]" (identifier "param_2") ([ "[") (number_literal "-1") (] "]")) (. ".") (field_identifier "e_shnum"))))) (; ";")) (expression_statement "pEVar11 = param_2;" (assignment_expression "pEVar11 = param_2" (identifier "pEVar11") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pEVar13 = param_3;" (assignment_expression "pEVar13 = param_3" (identifier "pEVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);" (assignment_expression "uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_rshift_0009d560)(param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_rshift_0009d560)" (( "(") (pointer_expression "*(code *)PTR___gmpn_rshift_0009d560" (* "*") (cast_expression "(code *)PTR___gmpn_rshift_0009d560" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_rshift_0009d560"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);" (assignment_expression "param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10)" (field_expression "param_2[-0xffffffff00000001].e_shnum" (subscript_expression "param_2[-0xffffffff00000001]" (identifier "param_2") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shnum")) (= "=") (cast_expression "(short)((uint)uVar4 >> 0x10)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((uint)uVar4 >> 0x10)" (( "(") (binary_expression "(uint)uVar4 >> 0x10" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;" (assignment_expression "param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4" (field_expression "param_2[-0xffffffff00000001].e_shstrndx" (subscript_expression "param_2[-0xffffffff00000001]" (identifier "param_2") ([ "[") (number_literal "-0xffffffff00000001") (] "]")) (. ".") (field_identifier "e_shstrndx")) (= "=") (cast_expression "(short)uVar4" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));" (assignment_expression "param_3 = (Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)\n              (param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1))" (( "(") (binary_expression "param_3->e_ident_magic_str +\n              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" (field_expression "param_3->e_ident_magic_str" (identifier "param_3") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1)" (( "(") (binary_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1" (parenthesized_expression "(*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0)" (( "(") (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||\n               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (binary_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)param_1 + (int)param_3 * 2 * 2)" (* "*") (cast_expression "(int *)((int)param_1 + (int)param_3 * 2 * 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + (int)param_3 * 2 * 2)" (( "(") (binary_expression "(int)param_1 + (int)param_3 * 2 * 2" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "2")) (* "*") (number_literal "2"))) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0" (pointer_expression "*(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" (* "*") (cast_expression "(int *)((int)pEVar3 + (int)param_3 * 2 * 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar3 + (int)param_3 * 2 * 2)" (( "(") (binary_expression "(int)pEVar3 + (int)param_3 * 2 * 2" (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3")) (+ "+") (binary_expression "(int)param_3 * 2 * 2" (binary_expression "(int)param_3 * 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "2")) (* "*") (number_literal "2"))) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (- "-") (number_literal "1")) () ")"))) () ")")))) (; ";")) (do_statement "do {\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    } while (param_3 != (Elf32_Ehdr *)0x0);" (do "do") (compound_statement "{\n      if ((int)param_3 < 3) goto LAB_00058924;\n      local_5c = param_5;\n      pEVar11 = param_1;\n      pEVar13 = pEVar3;\n      pEVar15 = pEVar20;\n      in_stack_ffffffa0 = param_4;\n      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);\n    }" ({ "{") (if_statement "if ((int)param_3 < 3) goto LAB_00058924;" (if "if") (parenthesized_expression "((int)param_3 < 3)" (( "(") (binary_expression "(int)param_3 < 3" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "3")) () ")")) (goto_statement "goto LAB_00058924;" (goto "goto") (statement_identifier "LAB_00058924") (; ";"))) (expression_statement "local_5c = param_5;" (assignment_expression "local_5c = param_5" (identifier "local_5c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pEVar11 = param_1;" (assignment_expression "pEVar11 = param_1" (identifier "pEVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pEVar13 = pEVar3;" (assignment_expression "pEVar13 = pEVar3" (identifier "pEVar13") (= "=") (identifier "pEVar3")) (; ";")) (expression_statement "pEVar15 = pEVar20;" (assignment_expression "pEVar15 = pEVar20" (identifier "pEVar15") (= "=") (identifier "pEVar20")) (; ";")) (expression_statement "in_stack_ffffffa0 = param_4;" (assignment_expression "in_stack_ffffffa0 = param_4" (identifier "in_stack_ffffffa0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);" (assignment_expression "param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (identifier "param_3") (= "=") (cast_expression "(Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_hgcd_step_0009d51c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_hgcd_step_0009d51c" (* "*") (cast_expression "(code *)PTR___gmpn_hgcd_step_0009d51c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_hgcd_step_0009d51c"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3 != (Elf32_Ehdr *)0x0)" (( "(") (binary_expression "param_3 != (Elf32_Ehdr *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)0x1;" (assignment_expression "pEVar23 = (Elf32_Ehdr *)0x1" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (labeled_statement "LAB_00058820:\n  if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" (statement_identifier "LAB_00058820") (: ":") (if_statement "if (local_2c == *(Elf32_Ehdr **)puVar24) {\n    return pEVar23;\n  }" (if "if") (parenthesized_expression "(local_2c == *(Elf32_Ehdr **)puVar24)" (( "(") (binary_expression "local_2c == *(Elf32_Ehdr **)puVar24" (identifier "local_2c") (== "==") (pointer_expression "*(Elf32_Ehdr **)puVar24" (* "*") (cast_expression "(Elf32_Ehdr **)puVar24" (( "(") (type_descriptor "Elf32_Ehdr **" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar24")))) () ")")) (compound_statement "{\n    return pEVar23;\n  }" ({ "{") (return_statement "return pEVar23;" (return "return") (identifier "pEVar23") (; ";")) (} "}")))) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_0009d4d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0009d4d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {\n    return (Elf32_Ehdr *)0x0;\n  }" (if "if") (parenthesized_expression "((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2))" (( "(") (binary_expression "(local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)" (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "local_2c < (Elf32_Ehdr *)0x2" (identifier "local_2c") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (|| "||") (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" (identifier "pEVar13") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")"))) () ")")) (compound_statement "{\n    return (Elf32_Ehdr *)0x0;\n  }" ({ "{") (return_statement "return (Elf32_Ehdr *)0x0;" (return "return") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }\n  else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" (if "if") (parenthesized_expression "((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))))" (( "(") (binary_expression "(pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" (parenthesized_expression "(pEVar13 < local_2c)" (( "(") (binary_expression "pEVar13 < local_2c" (identifier "pEVar13") (< "<") (identifier "local_2c")) () ")")) (|| "||") (parenthesized_expression "((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))" (( "(") (parenthesized_expression "(local_2c == pEVar13 && (pEVar15 < pEVar11 != 0))" (( "(") (binary_expression "local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)" (binary_expression "local_2c == pEVar13" (identifier "local_2c") (== "==") (identifier "pEVar13")) (&& "&&") (parenthesized_expression "(pEVar15 < pEVar11 != 0)" (( "(") (binary_expression "pEVar15 < pEVar11 != 0" (binary_expression "pEVar15 < pEVar11" (identifier "pEVar15") (< "<") (identifier "pEVar11")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    iVar26 = 0;\n    iVar17 = 1;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);\n    iVar19 = 1;\n    if (local_2c < pEVar13) goto LAB_00058c00;\n  }" ({ "{") (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (identifier "local_2c") (= "=") (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (( "(") (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (( "(") (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" (- "-") (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar11 < pEVar15)" (( "(") (binary_expression "pEVar11 < pEVar15" (identifier "pEVar11") (< "<") (identifier "pEVar15")) () ")")))) (- "-") (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13"))) () ")"))) () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar24 + 0x44940)" (* "*") (cast_expression "(int *)(puVar24 + 0x44940)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x44940)" (( "(") (binary_expression "puVar24 + 0x44940" (identifier "puVar24") (+ "+") (number_literal "0x44940")) () ")"))))) (; ";")) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" (if "if") (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "local_2c < (Elf32_Ehdr *)0x2" (identifier "local_2c") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" ({ "{") (return_statement "return (Elf32_Ehdr *)0x0;" (return "return") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" (( "(") (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11")) (- "-") (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15"))) () ")")))) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" (identifier "iVar17") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 5)" (( "(") (binary_expression "iVar25 + *(int *)local_5c * 8 + 5" (binary_expression "iVar25 + *(int *)local_5c * 8" (identifier "iVar25") (+ "+") (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" (* "*") (cast_expression "(int *)local_5c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_5c"))) (* "*") (number_literal "8"))) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_2c < pEVar13) goto LAB_00058c00;" (if "if") (parenthesized_expression "(local_2c < pEVar13)" (( "(") (binary_expression "local_2c < pEVar13" (identifier "local_2c") (< "<") (identifier "pEVar13")) () ")")) (goto_statement "goto LAB_00058c00;" (goto "goto") (statement_identifier "LAB_00058c00") (; ";"))) (} "}")) (else_clause "else {\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" (else "else") (compound_statement "{\n    pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));\n    iVar25 = *(int *)(puVar24 + 0x44940);\n    if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar26 = 1;\n    iVar17 = 0;\n    iVar18 = 1;\n    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);\n    iVar19 = 1;\n    if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }\n  }" ({ "{") (expression_statement "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)\n              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)))" (( "(") (binary_expression "(int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (- "-") (cast_expression "(int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1))" (( "(") (binary_expression "local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)" (field_expression "local_2c->e_ident_magic_str" (identifier "local_2c") (-> "->") (field_identifier "e_ident_magic_str")) (+ "+") (parenthesized_expression "((pEVar15 < pEVar11) - 1)" (( "(") (binary_expression "(pEVar15 < pEVar11) - 1" (parenthesized_expression "(pEVar15 < pEVar11)" (( "(") (binary_expression "pEVar15 < pEVar11" (identifier "pEVar15") (< "<") (identifier "pEVar11")) () ")")) (- "-") (number_literal "1")) () ")"))) () ")")))) () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar24 + 0x44940);" (assignment_expression "iVar25 = *(int *)(puVar24 + 0x44940)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar24 + 0x44940)" (* "*") (cast_expression "(int *)(puVar24 + 0x44940)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0x44940)" (( "(") (binary_expression "puVar24 + 0x44940" (identifier "puVar24") (+ "+") (number_literal "0x44940")) () ")"))))) (; ";")) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n      return (Elf32_Ehdr *)0x0;\n    }" (if "if") (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" (identifier "pEVar13") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      return (Elf32_Ehdr *)0x0;\n    }" ({ "{") (return_statement "return (Elf32_Ehdr *)0x0;" (return "return") (cast_expression "(Elf32_Ehdr *)0x0" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" (( "(") (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15")) (- "-") (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11"))) () ")")))) (; ";")) (expression_statement "iVar26 = 1;" (assignment_expression "iVar26 = 1" (identifier "iVar26") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + *(int *)local_5c * 8 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + *(int *)local_5c * 8 + 1)" (( "(") (binary_expression "iVar25 + *(int *)local_5c * 8 + 1" (binary_expression "iVar25 + *(int *)local_5c * 8" (identifier "iVar25") (+ "+") (binary_expression "*(int *)local_5c * 8" (pointer_expression "*(int *)local_5c" (* "*") (cast_expression "(int *)local_5c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_5c"))) (* "*") (number_literal "8"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_2c < pEVar13) {\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" (if "if") (parenthesized_expression "(local_2c < pEVar13)" (( "(") (binary_expression "local_2c < pEVar13" (identifier "local_2c") (< "<") (identifier "pEVar13")) () ")")) (compound_statement "{\nLAB_00058c00:\n      iVar19 = 1;\n      iVar18 = 1;\n      goto LAB_00058c04;\n    }" ({ "{") (labeled_statement "LAB_00058c00:\n      iVar19 = 1;" (statement_identifier "LAB_00058c00") (: ":") (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00058c04;" (goto "goto") (statement_identifier "LAB_00058c04") (; ";")) (} "}"))) (} "}")))) (while_statement "while (local_2c != pEVar13) {\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" (while "while") (parenthesized_expression "(local_2c != pEVar13)" (( "(") (binary_expression "local_2c != pEVar13" (identifier "local_2c") (!= "!=") (identifier "pEVar13")) () ")")) (compound_statement "{\n    if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }\n    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));\n    if (local_2c < (Elf32_Ehdr *)0x2) break;\n    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);\n    if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }\n    iVar18 = iVar18 + iVar9;\n    iVar17 = iVar17 + iVar16;\n    uVar21 = (uint)bVar2;\n    if (local_2c == pEVar13) break;\nLAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }\n    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));\n    if (pEVar13 < (Elf32_Ehdr *)0x2) break;\n    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);\n    iVar9 = uVar21 * 8;\n    if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }\n  }" ({ "{") (if_statement "if (local_2c < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" (if "if") (parenthesized_expression "(local_2c < &Elf32_Ehdr_00010000)" (( "(") (binary_expression "local_2c < &Elf32_Ehdr_00010000" (identifier "local_2c") (< "<") (pointer_expression "&Elf32_Ehdr_00010000" (& "&") (identifier "Elf32_Ehdr_00010000"))) () ")")) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c5c;\n    }" ({ "{") (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (identifier "uVar22") (= "=") (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" (( "(") (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar11")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (identifier "uVar14") (= "=") (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" (( "(") (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar15")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (* "*") (number_literal "0x10000")))) (; ";")) (goto_statement "goto LAB_00058c5c;" (goto "goto") (statement_identifier "LAB_00058c5c") (; ";")) (} "}"))) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (identifier "local_2c") (= "=") (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13))" (( "(") (binary_expression "(int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (parenthesized_expression "(-(uint)(pEVar11 < pEVar15) - (int)pEVar13)" (( "(") (binary_expression "-(uint)(pEVar11 < pEVar15) - (int)pEVar13" (unary_expression "-(uint)(pEVar11 < pEVar15)" (- "-") (call_expression "(uint)(pEVar11 < pEVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar11 < pEVar15)" (( "(") (binary_expression "pEVar11 < pEVar15" (identifier "pEVar11") (< "<") (identifier "pEVar15")) () ")")))) (- "-") (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13"))) () ")"))) () ")")))) (; ";")) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) break;" (if "if") (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "local_2c < (Elf32_Ehdr *)0x2" (identifier "local_2c") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar11 - (int)pEVar15)" (( "(") (binary_expression "(int)pEVar11 - (int)pEVar15" (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11")) (- "-") (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15"))) () ")")))) (; ";")) (if_statement "if (pEVar13 < local_2c) {\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }\n    else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" (if "if") (parenthesized_expression "(pEVar13 < local_2c)" (( "(") (binary_expression "pEVar13 < local_2c" (identifier "pEVar13") (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n      iVar9 = 0;\n      pEVar23 = pEVar13;\n      pEVar20 = pEVar15;\n      if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }\n      iVar9 = uVar21 * 8 + 4;\n      if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }\n      uVar22 = uVar22 + 1;\n      iVar16 = iVar19 * uVar22;\n      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n      iVar9 = iVar26 * uVar22;\n    }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar23 = pEVar13;" (assignment_expression "pEVar23 = pEVar13" (identifier "pEVar23") (= "=") (identifier "pEVar13")) (; ";")) (expression_statement "pEVar20 = pEVar15;" (assignment_expression "pEVar20 = pEVar15" (identifier "pEVar20") (= "=") (identifier "pEVar15")) (; ";")) (if_statement "if ((int)local_2c < 0) {\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" (if "if") (parenthesized_expression "((int)local_2c < 0)" (( "(") (binary_expression "(int)local_2c < 0" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }\n        uVar22 = 0;\n        do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);\n      }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "-1 < (int)pEVar23" (number_literal "-1") (< "<") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (; ";") (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 | (int)pEVar23 << 1)" (( "(") (binary_expression "uVar22 | (int)pEVar23 << 1" (identifier "uVar22") (| "|") (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "1"))) () ")")))) () ")") (compound_statement "{\n          uVar22 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar9 = iVar9 + 1;\n        }" ({ "{") (expression_statement "uVar22 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar22 = (uint)pEVar20 >> 0x1f" (identifier "uVar22") (= "=") (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 << 1)" (( "(") (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar9 != 0);" (do "do") (compound_statement "{\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }\n          iVar9 = iVar9 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" ({ "{") (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 << 1" (identifier "uVar22") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" (if "if") (parenthesized_expression "(pEVar23 < local_2c)" (( "(") (binary_expression "pEVar23 < local_2c" (identifier "pEVar23") (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar20);\nLAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" ({ "{") (expression_statement "uVar14 = (uint)(pEVar11 < pEVar20);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar20)" (identifier "uVar14") (= "=") (call_expression "(uint)(pEVar11 < pEVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar11 < pEVar20)" (( "(") (binary_expression "pEVar11 < pEVar20" (identifier "pEVar11") (< "<") (identifier "pEVar20")) () ")")))) (; ";")) (labeled_statement "LAB_00058f3c:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" (statement_identifier "LAB_00058f3c") (: ":") (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar11 - (int)pEVar20)" (( "(") (binary_expression "(int)pEVar11 - (int)pEVar20" (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11")) (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))) () ")")))) (; ";"))) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" (identifier "local_2c") (= "=") (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" (( "(") (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (parenthesized_expression "(-(int)pEVar23 - uVar14)" (( "(") (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" (- "-") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (- "-") (identifier "uVar14")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 | 1" (identifier "uVar22") (| "|") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" (else "else") (if_statement "if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" (if "if") (parenthesized_expression "((local_2c == pEVar23) && (pEVar20 <= pEVar11))" (( "(") (binary_expression "(local_2c == pEVar23) && (pEVar20 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" (( "(") (binary_expression "local_2c == pEVar23" (identifier "local_2c") (== "==") (identifier "pEVar23")) () ")")) (&& "&&") (parenthesized_expression "(pEVar20 <= pEVar11)" (( "(") (binary_expression "pEVar20 <= pEVar11" (identifier "pEVar20") (<= "<=") (identifier "pEVar11")) () ")"))) () ")")) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058f3c;\n          }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00058f3c;" (goto "goto") (statement_identifier "LAB_00058f3c") (; ";")) (} "}"))))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (( "(") (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "0x1f")) (| "|") (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar23 >> 1)" (( "(") (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar23")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" (else "else") (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));\n        uVar22 = 0;\n        do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);\n      }" ({ "{") (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));" (do "do") (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);\n        }" ({ "{") (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < local_2c);" (do "do") (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar9 = iVar9 + 1;\n            pEVar20 = pEVar3;\n          }" ({ "{") (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 << 1)" (( "(") (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (( "(") (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" (identifier "pEVar20") (= "=") (identifier "pEVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar23 < local_2c)" (( "(") (binary_expression "pEVar23 < local_2c" (identifier "pEVar23") (< "<") (identifier "local_2c")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((local_2c == pEVar23) && (pEVar3 <= pEVar11))" (( "(") (binary_expression "(local_2c == pEVar23) && (pEVar3 <= pEVar11)" (parenthesized_expression "(local_2c == pEVar23)" (( "(") (binary_expression "local_2c == pEVar23" (identifier "local_2c") (== "==") (identifier "pEVar23")) () ")")) (&& "&&") (parenthesized_expression "(pEVar3 <= pEVar11)" (( "(") (binary_expression "pEVar3 <= pEVar11" (identifier "pEVar3") (<= "<=") (identifier "pEVar11")) () ")"))) () ")")) (; ";")) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        } while (iVar9 != 0);" (do "do") (compound_statement "{\n          uVar14 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);\n          uVar22 = uVar22 << 1;\n          if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }\n          iVar9 = iVar9 + -1;\n        }" ({ "{") (expression_statement "uVar14 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar14 = (int)pEVar23 << 0x1f" (identifier "uVar14") (= "=") (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "0x1f"))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar23 >> 1)" (( "(") (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar23")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 | (uint)pEVar3 >> 1)" (( "(") (binary_expression "uVar14 | (uint)pEVar3 >> 1" (identifier "uVar14") (| "|") (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar3")) (>> ">>") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "uVar22 = uVar22 << 1;" (assignment_expression "uVar22 = uVar22 << 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 << 1" (identifier "uVar22") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (pEVar23 < local_2c) {\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }\n          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" (if "if") (parenthesized_expression "(pEVar23 < local_2c)" (( "(") (binary_expression "pEVar23 < local_2c" (identifier "pEVar23") (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n            uVar14 = (uint)(pEVar11 < pEVar3);\nLAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);\n            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));\n            uVar22 = uVar22 | 1;\n          }" ({ "{") (expression_statement "uVar14 = (uint)(pEVar11 < pEVar3);" (assignment_expression "uVar14 = (uint)(pEVar11 < pEVar3)" (identifier "uVar14") (= "=") (call_expression "(uint)(pEVar11 < pEVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar11 < pEVar3)" (( "(") (binary_expression "pEVar11 < pEVar3" (identifier "pEVar11") (< "<") (identifier "pEVar3")) () ")")))) (; ";")) (labeled_statement "LAB_00058dd8:\n            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" (statement_identifier "LAB_00058dd8") (: ":") (expression_statement "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);" (assignment_expression "pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" (identifier "pEVar11") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar11 - (int)pEVar3)" (( "(") (binary_expression "(int)pEVar11 - (int)pEVar3" (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11")) (- "-") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")))) (; ";"))) (expression_statement "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));" (assignment_expression "local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" (identifier "local_2c") (= "=") (cast_expression "(Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_2c + (-(int)pEVar23 - uVar14))" (( "(") (binary_expression "(int)local_2c + (-(int)pEVar23 - uVar14)" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (+ "+") (parenthesized_expression "(-(int)pEVar23 - uVar14)" (( "(") (binary_expression "-(int)pEVar23 - uVar14" (unary_expression "-(int)pEVar23" (- "-") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (- "-") (identifier "uVar14")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar22 = uVar22 | 1;" (assignment_expression "uVar22 = uVar22 | 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 | 1" (identifier "uVar22") (| "|") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" (else "else") (if_statement "if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" (if "if") (parenthesized_expression "((pEVar23 == local_2c) && (pEVar3 <= pEVar11))" (( "(") (binary_expression "(pEVar23 == local_2c) && (pEVar3 <= pEVar11)" (parenthesized_expression "(pEVar23 == local_2c)" (( "(") (binary_expression "pEVar23 == local_2c" (identifier "pEVar23") (== "==") (identifier "local_2c")) () ")")) (&& "&&") (parenthesized_expression "(pEVar3 <= pEVar11)" (( "(") (binary_expression "pEVar3 <= pEVar11" (identifier "pEVar3") (<= "<=") (identifier "pEVar11")) () ")"))) () ")")) (compound_statement "{\n            uVar14 = 0;\n            goto LAB_00058dd8;\n          }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00058dd8;" (goto "goto") (statement_identifier "LAB_00058dd8") (; ";")) (} "}"))))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "iVar9 = uVar21 * 8 + 4;" (assignment_expression "iVar9 = uVar21 * 8 + 4" (identifier "iVar9") (= "=") (binary_expression "uVar21 * 8 + 4" (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (local_2c < (Elf32_Ehdr *)0x2) {\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" (if "if") (parenthesized_expression "(local_2c < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "local_2c < (Elf32_Ehdr *)0x2" (identifier "local_2c") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        iVar17 = iVar19 * uVar22 + iVar17;\n        iVar18 = iVar26 * uVar22 + iVar18;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));\n        break;\n      }" ({ "{") (expression_statement "iVar17 = iVar19 * uVar22 + iVar17;" (assignment_expression "iVar17 = iVar19 * uVar22 + iVar17" (identifier "iVar17") (= "=") (binary_expression "iVar19 * uVar22 + iVar17" (binary_expression "iVar19 * uVar22" (identifier "iVar19") (* "*") (identifier "uVar22")) (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar18 = iVar26 * uVar22 + iVar18;" (assignment_expression "iVar18 = iVar26 * uVar22 + iVar18" (identifier "iVar18") (= "=") (binary_expression "iVar26 * uVar22 + iVar18" (binary_expression "iVar26 * uVar22" (identifier "iVar26") (* "*") (identifier "uVar22")) (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar22 & 3)" (( "(") (binary_expression "uVar22 & 3" (identifier "uVar22") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar19 * uVar22;" (assignment_expression "iVar16 = iVar19 * uVar22" (identifier "iVar16") (= "=") (binary_expression "iVar19 * uVar22" (identifier "iVar19") (* "*") (identifier "uVar22"))) (; ";")) (expression_statement "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));" (assignment_expression "bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar22 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar22 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar22 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar22 & 3)" (( "(") (binary_expression "uVar22 & 3" (identifier "uVar22") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar26 * uVar22;" (assignment_expression "iVar9 = iVar26 * uVar22" (identifier "iVar9") (= "=") (binary_expression "iVar26 * uVar22" (identifier "iVar26") (* "*") (identifier "uVar22"))) (; ";")) (} "}")) (else_clause "else {\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" (else "else") (compound_statement "{\n      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);\n      iVar16 = iVar19;\n      iVar9 = iVar26;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);" (assignment_expression "bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(iVar25 + uVar21 * 8 + 5)" (* "*") (cast_expression "(byte *)(iVar25 + uVar21 * 8 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + uVar21 * 8 + 5)" (( "(") (binary_expression "iVar25 + uVar21 * 8 + 5" (binary_expression "iVar25 + uVar21 * 8" (identifier "iVar25") (+ "+") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "iVar16 = iVar19;" (assignment_expression "iVar16 = iVar19" (identifier "iVar16") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "iVar9 = iVar26;" (assignment_expression "iVar9 = iVar26" (identifier "iVar9") (= "=") (identifier "iVar26")) (; ";")) (} "}")))) (expression_statement "iVar18 = iVar18 + iVar9;" (assignment_expression "iVar18 = iVar18 + iVar9" (identifier "iVar18") (= "=") (binary_expression "iVar18 + iVar9" (identifier "iVar18") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar17 = iVar17 + iVar16;" (assignment_expression "iVar17 = iVar17 + iVar16" (identifier "iVar17") (= "=") (binary_expression "iVar17 + iVar16" (identifier "iVar17") (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "uVar21 = (uint)bVar2;" (assignment_expression "uVar21 = (uint)bVar2" (identifier "uVar21") (= "=") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) (; ";")) (if_statement "if (local_2c == pEVar13) break;" (if "if") (parenthesized_expression "(local_2c == pEVar13)" (( "(") (binary_expression "local_2c == pEVar13" (identifier "local_2c") (== "==") (identifier "pEVar13")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00058c04:\n    if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" (statement_identifier "LAB_00058c04") (: ":") (if_statement "if (pEVar13 < &Elf32_Ehdr_00010000) {\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" (if "if") (parenthesized_expression "(pEVar13 < &Elf32_Ehdr_00010000)" (( "(") (binary_expression "pEVar13 < &Elf32_Ehdr_00010000" (identifier "pEVar13") (< "<") (pointer_expression "&Elf32_Ehdr_00010000" (& "&") (identifier "Elf32_Ehdr_00010000"))) () ")")) (compound_statement "{\n      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;\n      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;\n      goto LAB_00058c8c;\n    }" ({ "{") (expression_statement "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;" (assignment_expression "uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (identifier "uVar22") (= "=") (binary_expression "((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000" (parenthesized_expression "((uint)pEVar11 >> 0x10)" (( "(") (binary_expression "(uint)pEVar11 >> 0x10" (cast_expression "(uint)pEVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar11")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(int)local_2c * 0x10000" (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;" (assignment_expression "uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (identifier "uVar14") (= "=") (binary_expression "((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000" (parenthesized_expression "((uint)pEVar15 >> 0x10)" (( "(") (binary_expression "(uint)pEVar15 >> 0x10" (cast_expression "(uint)pEVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar15")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(int)pEVar13 * 0x10000" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (* "*") (number_literal "0x10000")))) (; ";")) (goto_statement "goto LAB_00058c8c;" (goto "goto") (statement_identifier "LAB_00058c8c") (; ";")) (} "}")))) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c))" (( "(") (binary_expression "(int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c)" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (+ "+") (parenthesized_expression "(-(uint)(pEVar15 < pEVar11) - (int)local_2c)" (( "(") (binary_expression "-(uint)(pEVar15 < pEVar11) - (int)local_2c" (unary_expression "-(uint)(pEVar15 < pEVar11)" (- "-") (call_expression "(uint)(pEVar15 < pEVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar15 < pEVar11)" (( "(") (binary_expression "pEVar15 < pEVar11" (identifier "pEVar15") (< "<") (identifier "pEVar11")) () ")")))) (- "-") (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c"))) () ")"))) () ")")))) (; ";")) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) break;" (if "if") (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" (identifier "pEVar13") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar15 - (int)pEVar11)" (( "(") (binary_expression "(int)pEVar15 - (int)pEVar11" (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15")) (- "-") (cast_expression "(int)pEVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar11"))) () ")")))) (; ";")) (expression_statement "iVar9 = uVar21 * 8;" (assignment_expression "iVar9 = uVar21 * 8" (identifier "iVar9") (= "=") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (; ";")) (if_statement "if (local_2c < pEVar13) {\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }\n    else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" (if "if") (parenthesized_expression "(local_2c < pEVar13)" (( "(") (binary_expression "local_2c < pEVar13" (identifier "local_2c") (< "<") (identifier "pEVar13")) () ")")) (compound_statement "{\n      iVar16 = 0;\n      pEVar23 = local_2c;\n      pEVar20 = pEVar11;\n      if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }\n      if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }\n      uVar21 = uVar21 + 1;\n      iVar19 = uVar21 * iVar17 + iVar19;\n      iVar26 = uVar21 * iVar18 + iVar26;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n    }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar23 = local_2c;" (assignment_expression "pEVar23 = local_2c" (identifier "pEVar23") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "pEVar20 = pEVar11;" (assignment_expression "pEVar20 = pEVar11" (identifier "pEVar20") (= "=") (identifier "pEVar11")) (; ";")) (if_statement "if ((int)pEVar13 < 0) {\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }\n      else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" (if "if") (parenthesized_expression "((int)pEVar13 < 0)" (( "(") (binary_expression "(int)pEVar13 < 0" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar16 = 1;\n        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }\n        uVar21 = 0;\n        do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);\n      }" ({ "{") (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (for_statement "for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "-1 < (int)pEVar23" (number_literal "-1") (< "<") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (; ";") (assignment_expression "pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar21 | (int)pEVar23 << 1)" (( "(") (binary_expression "uVar21 | (int)pEVar23 << 1" (identifier "uVar21") (| "|") (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "1"))) () ")")))) () ")") (compound_statement "{\n          uVar21 = (uint)pEVar20 >> 0x1f;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n          iVar16 = iVar16 + 1;\n        }" ({ "{") (expression_statement "uVar21 = (uint)pEVar20 >> 0x1f;" (assignment_expression "uVar21 = (uint)pEVar20 >> 0x1f" (identifier "uVar21") (= "=") (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 << 1)" (( "(") (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        } while (iVar16 != 0);" (do "do") (compound_statement "{\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }\n          iVar16 = iVar16 + -1;\n          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n        }" ({ "{") (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 << 1" (identifier "uVar21") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" (if "if") (parenthesized_expression "(pEVar23 < pEVar13)" (( "(") (binary_expression "pEVar23 < pEVar13" (identifier "pEVar23") (< "<") (identifier "pEVar13")) () ")")) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar20);\nLAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" ({ "{") (expression_statement "uVar22 = (uint)(pEVar15 < pEVar20);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar20)" (identifier "uVar22") (= "=") (call_expression "(uint)(pEVar15 < pEVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar15 < pEVar20)" (( "(") (binary_expression "pEVar15 < pEVar20" (identifier "pEVar15") (< "<") (identifier "pEVar20")) () ")")))) (; ";")) (labeled_statement "LAB_0005900c:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" (statement_identifier "LAB_0005900c") (: ":") (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar15 - (int)pEVar20)" (( "(") (binary_expression "(int)pEVar15 - (int)pEVar20" (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15")) (- "-") (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20"))) () ")")))) (; ";"))) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" (( "(") (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (+ "+") (parenthesized_expression "(-(int)pEVar23 - uVar22)" (( "(") (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" (- "-") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (- "-") (identifier "uVar22")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 1" (identifier "uVar21") (| "|") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" (else "else") (if_statement "if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" (if "if") (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar20 <= pEVar15))" (( "(") (binary_expression "(pEVar13 == pEVar23) && (pEVar20 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" (( "(") (binary_expression "pEVar13 == pEVar23" (identifier "pEVar13") (== "==") (identifier "pEVar23")) () ")")) (&& "&&") (parenthesized_expression "(pEVar20 <= pEVar15)" (( "(") (binary_expression "pEVar20 <= pEVar15" (identifier "pEVar20") (<= "<=") (identifier "pEVar15")) () ")"))) () ")")) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_0005900c;\n          }" ({ "{") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0005900c;" (goto "goto") (statement_identifier "LAB_0005900c") (; ";")) (} "}"))))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);" (assignment_expression "pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (identifier "pEVar20") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1)" (( "(") (binary_expression "(int)pEVar23 << 0x1f | (uint)pEVar20 >> 1" (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "0x1f")) (| "|") (binary_expression "(uint)pEVar20 >> 1" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar23 >> 1)" (( "(") (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar23")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" (else "else") (compound_statement "{\n        do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));\n        uVar21 = 0;\n        do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);\n      }" ({ "{") (do_statement "do {\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));" (do "do") (compound_statement "{\n          do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);\n        }" ({ "{") (do_statement "do {\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          } while (pEVar23 < pEVar13);" (do "do") (compound_statement "{\n            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);\n            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);\n            iVar16 = iVar16 + 1;\n            pEVar20 = pEVar3;\n          }" ({ "{") (expression_statement "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar20 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar20 << 1)" (( "(") (binary_expression "(int)pEVar20 << 1" (cast_expression "(int)pEVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar20")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1)" (( "(") (binary_expression "(uint)pEVar20 >> 0x1f | (int)pEVar23 << 1" (binary_expression "(uint)pEVar20 >> 0x1f" (cast_expression "(uint)pEVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar20")) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "(int)pEVar23 << 1" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pEVar20 = pEVar3;" (assignment_expression "pEVar20 = pEVar3" (identifier "pEVar20") (= "=") (identifier "pEVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pEVar23 < pEVar13)" (( "(") (binary_expression "pEVar23 < pEVar13" (identifier "pEVar23") (< "<") (identifier "pEVar13")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((pEVar13 == pEVar23) && (pEVar3 <= pEVar15))" (( "(") (binary_expression "(pEVar13 == pEVar23) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar13 == pEVar23)" (( "(") (binary_expression "pEVar13 == pEVar23" (identifier "pEVar13") (== "==") (identifier "pEVar23")) () ")")) (&& "&&") (parenthesized_expression "(pEVar3 <= pEVar15)" (( "(") (binary_expression "pEVar3 <= pEVar15" (identifier "pEVar3") (<= "<=") (identifier "pEVar15")) () ")"))) () ")")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        } while (iVar16 != 0);" (do "do") (compound_statement "{\n          uVar22 = (int)pEVar23 << 0x1f;\n          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);\n          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);\n          uVar21 = uVar21 << 1;\n          if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }\n          iVar16 = iVar16 + -1;\n        }" ({ "{") (expression_statement "uVar22 = (int)pEVar23 << 0x1f;" (assignment_expression "uVar22 = (int)pEVar23 << 0x1f" (identifier "uVar22") (= "=") (binary_expression "(int)pEVar23 << 0x1f" (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23")) (<< "<<") (number_literal "0x1f"))) (; ";")) (expression_statement "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);" (assignment_expression "pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1)" (identifier "pEVar23") (= "=") (cast_expression "(Elf32_Ehdr *)((uint)pEVar23 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pEVar23 >> 1)" (( "(") (binary_expression "(uint)pEVar23 >> 1" (cast_expression "(uint)pEVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar23")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);" (assignment_expression "pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" (identifier "pEVar3") (= "=") (cast_expression "(Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 | (uint)pEVar3 >> 1)" (( "(") (binary_expression "uVar22 | (uint)pEVar3 >> 1" (identifier "uVar22") (| "|") (binary_expression "(uint)pEVar3 >> 1" (cast_expression "(uint)pEVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pEVar3")) (>> ">>") (number_literal "1"))) () ")")))) (; ";")) (expression_statement "uVar21 = uVar21 << 1;" (assignment_expression "uVar21 = uVar21 << 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 << 1" (identifier "uVar21") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (pEVar23 < pEVar13) {\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }\n          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" (if "if") (parenthesized_expression "(pEVar23 < pEVar13)" (( "(") (binary_expression "pEVar23 < pEVar13" (identifier "pEVar23") (< "<") (identifier "pEVar13")) () ")")) (compound_statement "{\n            uVar22 = (uint)(pEVar15 < pEVar3);\nLAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);\n            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));\n            uVar21 = uVar21 | 1;\n          }" ({ "{") (expression_statement "uVar22 = (uint)(pEVar15 < pEVar3);" (assignment_expression "uVar22 = (uint)(pEVar15 < pEVar3)" (identifier "uVar22") (= "=") (call_expression "(uint)(pEVar15 < pEVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pEVar15 < pEVar3)" (( "(") (binary_expression "pEVar15 < pEVar3" (identifier "pEVar15") (< "<") (identifier "pEVar3")) () ")")))) (; ";")) (labeled_statement "LAB_00058d20:\n            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" (statement_identifier "LAB_00058d20") (: ":") (expression_statement "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);" (assignment_expression "pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" (identifier "pEVar15") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3)" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar15 - (int)pEVar3)" (( "(") (binary_expression "(int)pEVar15 - (int)pEVar3" (cast_expression "(int)pEVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar15")) (- "-") (cast_expression "(int)pEVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar3"))) () ")")))) (; ";"))) (expression_statement "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));" (assignment_expression "pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" (identifier "pEVar13") (= "=") (cast_expression "(Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22))" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pEVar13 + (-(int)pEVar23 - uVar22))" (( "(") (binary_expression "(int)pEVar13 + (-(int)pEVar23 - uVar22)" (cast_expression "(int)pEVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar13")) (+ "+") (parenthesized_expression "(-(int)pEVar23 - uVar22)" (( "(") (binary_expression "-(int)pEVar23 - uVar22" (unary_expression "-(int)pEVar23" (- "-") (cast_expression "(int)pEVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pEVar23"))) (- "-") (identifier "uVar22")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar21 = uVar21 | 1;" (assignment_expression "uVar21 = uVar21 | 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 1" (identifier "uVar21") (| "|") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" (else "else") (if_statement "if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" (if "if") (parenthesized_expression "((pEVar23 == pEVar13) && (pEVar3 <= pEVar15))" (( "(") (binary_expression "(pEVar23 == pEVar13) && (pEVar3 <= pEVar15)" (parenthesized_expression "(pEVar23 == pEVar13)" (( "(") (binary_expression "pEVar23 == pEVar13" (identifier "pEVar23") (== "==") (identifier "pEVar13")) () ")")) (&& "&&") (parenthesized_expression "(pEVar3 <= pEVar15)" (( "(") (binary_expression "pEVar3 <= pEVar15" (identifier "pEVar3") (<= "<=") (identifier "pEVar15")) () ")"))) () ")")) (compound_statement "{\n            uVar22 = 0;\n            goto LAB_00058d20;\n          }" ({ "{") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00058d20;" (goto "goto") (statement_identifier "LAB_00058d20") (; ";")) (} "}"))))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (if_statement "if (pEVar13 < (Elf32_Ehdr *)0x2) {\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" (if "if") (parenthesized_expression "(pEVar13 < (Elf32_Ehdr *)0x2)" (( "(") (binary_expression "pEVar13 < (Elf32_Ehdr *)0x2" (identifier "pEVar13") (< "<") (cast_expression "(Elf32_Ehdr *)0x2" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        iVar19 = uVar21 * iVar17 + iVar19;\n        iVar26 = uVar21 * iVar18 + iVar26;\n        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));\n        break;\n      }" ({ "{") (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" (identifier "iVar19") (= "=") (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" (identifier "uVar21") (* "*") (identifier "iVar17")) (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" (identifier "iVar26") (= "=") (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" (identifier "uVar21") (* "*") (identifier "iVar18")) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar21 & 3)" (( "(") (binary_expression "uVar21 & 3" (identifier "uVar21") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = uVar21 * iVar17 + iVar19;" (assignment_expression "iVar19 = uVar21 * iVar17 + iVar19" (identifier "iVar19") (= "=") (binary_expression "uVar21 * iVar17 + iVar19" (binary_expression "uVar21 * iVar17" (identifier "uVar21") (* "*") (identifier "iVar17")) (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "iVar26 = uVar21 * iVar18 + iVar26;" (assignment_expression "iVar26 = uVar21 * iVar18 + iVar26" (identifier "iVar26") (= "=") (binary_expression "uVar21 * iVar18 + iVar26" (binary_expression "uVar21 * iVar18" (identifier "uVar21") (* "*") (identifier "iVar18")) (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + (uVar21 & 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + (uVar21 & 3))" (( "(") (binary_expression "iVar25 + iVar9 + (uVar21 & 3)" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (parenthesized_expression "(uVar21 & 3)" (( "(") (binary_expression "uVar21 & 3" (identifier "uVar21") (& "&") (number_literal "3")) () ")"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" (else "else") (compound_statement "{\n      iVar19 = iVar19 + iVar17;\n      iVar26 = iVar26 + iVar18;\n      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);\n    }" ({ "{") (expression_statement "iVar19 = iVar19 + iVar17;" (assignment_expression "iVar19 = iVar19 + iVar17" (identifier "iVar19") (= "=") (binary_expression "iVar19 + iVar17" (identifier "iVar19") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar26 = iVar26 + iVar18;" (assignment_expression "iVar26 = iVar26 + iVar18" (identifier "iVar26") (= "=") (binary_expression "iVar26 + iVar18" (identifier "iVar26") (+ "+") (identifier "iVar18"))) (; ";")) (expression_statement "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);" (assignment_expression "uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1)" (identifier "uVar21") (= "=") (binary_expression "(uint)*(byte *)(iVar25 + iVar9 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar25 + iVar9 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + iVar9 + 1)" (( "(") (binary_expression "iVar25 + iVar9 + 1" (binary_expression "iVar25 + iVar9" (identifier "iVar25") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00058b84:\n  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" (statement_identifier "LAB_00058b84") (: ":") (expression_statement "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_magic_num" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)((uint)iVar19 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar19 >> 0x18)" (( "(") (binary_expression "(uint)iVar19 >> 0x18" (cast_expression "(uint)iVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar19")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";"))) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[0]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)iVar19 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar19 >> 0x10)" (( "(") (binary_expression "(uint)iVar19 >> 0x10" (cast_expression "(uint)iVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar19")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[1]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)iVar19 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar19 >> 8)" (( "(") (binary_expression "(uint)iVar19 >> 8" (cast_expression "(uint)iVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar19")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;" (assignment_expression "in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19" (subscript_expression "in_stack_ffffffa0->e_ident_magic_str[2]" (field_expression "in_stack_ffffffa0->e_ident_magic_str" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)iVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar19"))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_class" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_class")) (= "=") (cast_expression "(char)((uint)iVar17 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar17 >> 0x18)" (( "(") (binary_expression "(uint)iVar17 >> 0x18" (cast_expression "(uint)iVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar17")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10)" (field_expression "in_stack_ffffffa0->e_ident_data" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_data")) (= "=") (cast_expression "(char)((uint)iVar17 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar17 >> 0x10)" (( "(") (binary_expression "(uint)iVar17 >> 0x10" (cast_expression "(uint)iVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar17")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8)" (field_expression "in_stack_ffffffa0->e_ident_version" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_version")) (= "=") (cast_expression "(char)((uint)iVar17 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar17 >> 8)" (( "(") (binary_expression "(uint)iVar17 >> 8" (cast_expression "(uint)iVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar17")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_osabi = (char)iVar17;" (assignment_expression "in_stack_ffffffa0->e_ident_osabi = (char)iVar17" (field_expression "in_stack_ffffffa0->e_ident_osabi" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_osabi")) (= "=") (cast_expression "(char)iVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar17"))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);" (assignment_expression "in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18)" (field_expression "in_stack_ffffffa0->e_ident_abiversion" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_abiversion")) (= "=") (cast_expression "(char)((uint)iVar26 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar26 >> 0x18)" (( "(") (binary_expression "(uint)iVar26 >> 0x18" (cast_expression "(uint)iVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar26")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[0]" (field_expression "in_stack_ffffffa0->e_ident_pad" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_pad")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)iVar26 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar26 >> 0x10)" (( "(") (binary_expression "(uint)iVar26 >> 0x10" (cast_expression "(uint)iVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar26")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);" (assignment_expression "in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8)" (subscript_expression "in_stack_ffffffa0->e_ident_pad[1]" (field_expression "in_stack_ffffffa0->e_ident_pad" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_pad")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)iVar26 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar26 >> 8)" (( "(") (binary_expression "(uint)iVar26 >> 8" (cast_expression "(uint)iVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar26")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;" (assignment_expression "in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26" (subscript_expression "in_stack_ffffffa0->e_ident_pad[2]" (field_expression "in_stack_ffffffa0->e_ident_pad" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_pad")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)iVar26" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar26"))) (; ";")) (expression_statement "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;" (assignment_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18" (pointer_expression "*(int *)(in_stack_ffffffa0->e_ident_pad + 3)" (* "*") (cast_expression "(int *)(in_stack_ffffffa0->e_ident_pad + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_stack_ffffffa0->e_ident_pad + 3)" (( "(") (binary_expression "in_stack_ffffffa0->e_ident_pad + 3" (field_expression "in_stack_ffffffa0->e_ident_pad" (identifier "in_stack_ffffffa0") (-> "->") (field_identifier "e_ident_pad")) (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);" (assignment_expression "local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18)" (field_expression "local_5c->e_ident_magic_num" (identifier "local_5c") (-> "->") (field_identifier "e_ident_magic_num")) (= "=") (cast_expression "(char)(uVar21 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);" (assignment_expression "local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10)" (subscript_expression "local_5c->e_ident_magic_str[0]" (field_expression "local_5c->e_ident_magic_str" (identifier "local_5c") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)(uVar21 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);" (assignment_expression "local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8)" (subscript_expression "local_5c->e_ident_magic_str[1]" (field_expression "local_5c->e_ident_magic_str" (identifier "local_5c") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)(uVar21 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_5c->e_ident_magic_str[2] = (char)uVar21;" (assignment_expression "local_5c->e_ident_magic_str[2] = (char)uVar21" (subscript_expression "local_5c->e_ident_magic_str[2]" (field_expression "local_5c->e_ident_magic_str" (identifier "local_5c") (-> "->") (field_identifier "e_ident_magic_str")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar21"))) (; ";")) (return_statement "return (Elf32_Ehdr *)0x1;" (return "return") (cast_expression "(Elf32_Ehdr *)0x1" (( "(") (type_descriptor "Elf32_Ehdr *" (type_identifier "Elf32_Ehdr") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

int function_1(type_1 var_11,type_1 var_12,type_2 var_1,type_3 *M,type_1 var_10)

{
  bool bVar1;
  type_4 bVar2;
  type_5 *var_3;
  type_6 uVar4;
  type_7 var_17;
  type_7 var_21;
  type_5 *var_6;
  char *var_5;
  int var_20;
  type_5 *var_23;
  type_5 *var_25;
  type_7 var_18;
  type_5 *var_24;
  type_7 var_15;
  type_5 *var_13;
  type_5 *var_4;
  int var_16;
  type_8 *var_22;
  int var_8;
  type_5 *var_27;
  type_7 var_7;
  type_7 var_14;
  int var_19;
  type_9 *var_26;
  int var_2;
  int var_9;
  type_5 *in_stack_ffffffa0;
  type_7 *puStack_5c;
  type_10 M1;
  
  var_26 = PTR___stack_chk_guard_0009d540;
  var_23 = *(type_5 **)PTR___stack_chk_guard_0009d540;
  if (var_1 < 3) {
    var_19 = 0;
    var_25 = (type_5 *)var_12;
    var_24 = (type_5 *)var_1;
    var_13 = (type_5 *)M;
  }
  else {
    var_2 = var_1 >> 1;
    var_27 = (type_5 *)(var_2 + 1);
    if (var_1 < 400) {
      var_19 = 0;
      var_2 = 0;
LAB_000586e4:
      var_25 = (type_5 *)var_11;
      var_24 = (type_5 *)var_12;
      var_13 = var_27;
      in_stack_ffffffa0 = (type_5 *)M;
      var_3 = (type_5 *)(*(type_11 *)PTR___gmpn_hgcd_step_0009d51c)(var_1);
      var_9 = var_2;
      if (var_3 != (type_5 *)0x0) {
        var_24 = (type_5 *)(var_2 * 2);
        var_1 = (type_2)var_3;
        if (var_24->e_ident_magic_str + (int)var_3->e_ident_magic_str * 0x20 + -1 <=
            (type_8 *)((int)var_27 << 6)) {
          if (var_2 == 0) {
            var_4 = (type_5 *)var_27->e_ident_magic_str;
            var_1 = (type_2)var_4;
            if (var_4 != var_3) {
              var_13 = (type_5 *)((int)var_3 + (-1 - (int)var_27));
              var_25 = (type_5 *)((int)var_3[0x13b13b1].e_ident_pad * 4 + 8);
              var_5 = var_25->e_ident_magic_str + (int)(((type_5 *)var_11)->e_ident_pad + -10);
              var_6 = var_13;
              do {
                var_6 = (type_5 *)((int)&var_6[-1].e_shstrndx + 1);
                if (*(int *)var_5 != 0) {
                  var_5 = var_25->e_ident_magic_str + (int)(((type_5 *)var_12)->e_ident_pad + -10);
                  goto LAB_00058780;
                }
                var_5 = var_5 + -4;
                var_1 = (type_2)var_3;
                var_9 = 0;
              } while (var_6 != (type_5 *)0x0);
            }
          }
          else {
            var_9 = var_2 + -1;
            var_4 = var_27;
LAB_00058978:
            var_7 = (type_7)(((int)var_27 * 2 - (int)var_3) * 0x20 + var_2 * -2) >> 5;
            var_11 = (type_1)(((type_5 *)var_11)->e_ident_magic_str + var_7 * 4 + -1);
            var_12 = (type_1)(((type_5 *)var_12)->e_ident_magic_str + var_7 * 4 + -1);
            var_27 = (type_5 *)((int)var_4 - var_7);
            var_1 = (type_2)((int)var_3 - var_7);
          }
        }
        goto LAB_00058864;
      }
      goto LAB_00058870;
    }
    var_8 = (*(type_11 *)PTR___gmpn_hgcd_reduce_0009d110)(M,var_11,var_12,var_1,var_2);
    var_9 = var_1;
    var_19 = var_8;
    if (var_8 != 0) {
      var_19 = 1;
      var_9 = var_8;
    }
    while ((var_1 * 3 >> 2) + 1 < var_9) {
      puStack_5c = var_10;
      var_25 = (type_5 *)var_11;
      var_24 = (type_5 *)var_12;
      var_13 = var_27;
      in_stack_ffffffa0 = (type_5 *)M;
      var_9 = (*(type_11 *)PTR___gmpn_hgcd_step_0009d51c)(var_9);
      if (var_9 == 0) goto LAB_00058820;
      var_19 = 1;
    }
    puStack_5c = var_10;
    if (var_2 + 3 < var_9) {
      var_25 = (type_5 *)&M1;
      var_8 = ((int)var_27 * 2 - var_9) + 1;
      var_2 = var_9 - var_8;
      (*(type_11 *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(var_25,var_2,var_10);
      var_24 = (type_5 *)(var_10 + ((var_2 + 1) / 2 + 1) * 4);
      var_13 = var_25;
      in_stack_ffffffa0 = var_24;
      var_2 = function_1(var_11 + var_8,var_12 + var_8,var_2,(type_3 *)var_25,(type_1)var_24);
      if (var_2 != 0) {
        (*(type_11 *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(M);
        var_19 = 1;
        goto LAB_00058820;
      }
    }
    while( true ) {
      var_25 = (type_5 *)var_11;
      var_24 = (type_5 *)var_12;
      var_13 = var_27;
      in_stack_ffffffa0 = (type_5 *)M;
      var_9 = (*(type_11 *)PTR___gmpn_hgcd_step_0009d51c)(var_9);
      if (var_9 == 0) break;
      var_19 = 1;
    }
  }
  goto LAB_00058820;
  while( true ) {
    var_5 = var_5 + -4;
    var_1 = (type_2)var_3;
    var_9 = 0;
    if (var_13 == (type_5 *)0x0) break;
LAB_00058780:
    var_13 = (type_5 *)((int)&var_13[-1].e_shstrndx + 1);
    if (*(int *)var_5 != 0) {
      var_9 = 0x1f;
      goto LAB_00058978;
    }
  }
LAB_00058864:
  var_19 = 1;
  var_2 = var_9;
  if (var_1 < 3) goto LAB_00058870;
  goto LAB_000586e4;
LAB_00058c8c:
  if (var_14 != var_15) {
    var_15 = var_15 - var_14;
    if (var_15 < 0x20000) goto LAB_00058b84;
    var_20 = var_7 * 8;
    if (var_14 < var_15) {
      var_16 = 0;
      var_7 = var_14;
      if ((int)var_15 < 0) {
        var_16 = 1;
        for (; -1 < (int)var_7; var_7 = var_7 << 1) {
          var_16 = var_16 + 1;
        }
        var_17 = 0;
        do {
          var_16 = var_16 + -1;
          var_17 = var_17 << 1;
          if (var_7 <= var_15) {
            var_15 = var_15 - var_7;
            var_17 = var_17 | 1;
          }
          var_7 = var_7 >> 1;
        } while (var_16 != 0);
      }
      else {
        do {
          var_18 = var_7;
          var_7 = var_18 << 1;
          var_16 = var_16 + 1;
        } while (var_7 <= var_15);
        var_17 = 0;
        var_18 = var_18 & 0x7fffffff;
        do {
          var_16 = var_16 + -1;
          var_17 = var_17 << 1;
          if (var_18 <= var_15) {
            var_15 = var_15 - var_18;
            var_17 = var_17 | 1;
          }
          var_18 = var_18 >> 1;
        } while (var_16 != 0);
      }
      if (var_15 < 0x20000) {
        var_8 = var_9 * var_17 + var_8;
        var_2 = var_2 + (int)var_22 * var_17;
        var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_17 & 3));
        goto LAB_00058b84;
      }
      var_17 = var_17 + 1;
      var_8 = var_9 * var_17 + var_8;
      var_2 = var_2 + (int)var_22 * var_17;
      var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_17 & 3));
    }
    else {
      var_8 = var_8 + var_9;
      var_2 = var_2 + (int)var_22;
      var_7 = (type_7)*(type_4 *)(var_19 + var_20 + 1);
    }
LAB_00058c5c:
    bVar1 = var_14 == var_15;
    var_14 = var_14 - var_15;
    if ((bVar1) || (var_14 < 0x20000)) goto LAB_00058b84;
    if (var_15 < var_14) {
      var_20 = 0;
      var_17 = var_15;
      if ((int)var_14 < 0) {
        var_20 = 1;
        for (; -1 < (int)var_17; var_17 = var_17 << 1) {
          var_20 = var_20 + 1;
        }
        var_18 = 0;
        do {
          var_20 = var_20 + -1;
          var_18 = var_18 << 1;
          if (var_17 <= var_14) {
            var_14 = var_14 - var_17;
            var_18 = var_18 | 1;
          }
          var_17 = var_17 >> 1;
        } while (var_20 != 0);
      }
      else {
        do {
          var_21 = var_17;
          var_17 = var_21 << 1;
          var_20 = var_20 + 1;
        } while (var_17 <= var_14);
        var_18 = 0;
        var_21 = var_21 & 0x7fffffff;
        do {
          var_20 = var_20 + -1;
          var_18 = var_18 << 1;
          if (var_21 <= var_14) {
            var_14 = var_14 - var_21;
            var_18 = var_18 | 1;
          }
          var_21 = var_21 >> 1;
        } while (var_20 != 0);
      }
      var_20 = var_7 * 8 + 4;
      if (var_14 < 0x20000) {
        var_9 = var_8 * var_18 + var_9;
        var_22 = var_22 + var_2 * var_18;
        var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_18 & 3));
        goto LAB_00058b84;
      }
      var_18 = var_18 + 1;
      var_9 = var_8 * var_18 + var_9;
      var_22 = var_22 + var_2 * var_18;
      var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_18 & 3));
    }
    else {
      var_9 = var_9 + var_8;
      var_22 = var_22 + var_2;
      var_7 = (type_7)*(type_4 *)(var_19 + var_7 * 8 + 5);
    }
    goto LAB_00058c8c;
  }
  goto LAB_00058b84;
LAB_00058870:
  var_3 = (type_5 *)var_12;
  if (var_9 == 0) {
LAB_00058924:
    puStack_5c = var_10;
    if ((type_5 *)var_1 == (type_5 *)0x2) {
      var_27 = (type_5 *)&M1;
      var_13 = *(type_5 **)&var_3->e_ident_magic_num;
      var_24 = *(type_5 **)&var_3->e_ident_class;
      var_25 = *(type_5 **)&((type_5 *)var_11)->e_ident_magic_num;
      uVar4._0_1_ = ((type_5 *)var_11)->e_ident_class;
      uVar4._1_1_ = ((type_5 *)var_11)->e_ident_data;
      uVar4._2_1_ = ((type_5 *)var_11)->e_ident_version;
      uVar4._3_1_ = ((type_5 *)var_11)->e_ident_osabi;
      in_stack_ffffffa0 = var_27;
      var_2 = (*(type_11 *)PTR___gmpn_hgcd2_0009d460)(uVar4);
      if (var_2 != 0) {
        (*(type_11 *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(M);
        var_19 = 1;
        var_25 = var_27;
        var_24 = (type_5 *)var_10;
      }
    }
  }
  else {
    var_13 = (type_5 *)(0x20 - var_9);
    uVar4 = (*(type_11 *)PTR___gmpn_rshift_0009d560)(var_11,var_11,var_1,var_13);
    ((type_5 *)((int)var_11 + -0x34))->e_shnum = (short)((type_7)uVar4 >> 0x10);
    ((type_5 *)((int)var_11 + -0x34))->e_shstrndx = (short)uVar4;
    var_11 = (type_1)&((type_5 *)((int)var_11 + -0x34))->e_shnum;
    var_3 = (type_5 *)&((type_5 *)((int)var_12 + -0x34))->e_shnum;
    var_25 = (type_5 *)var_12;
    var_24 = (type_5 *)var_1;
    uVar4 = (*(type_11 *)PTR___gmpn_rshift_0009d560)(var_12);
    ((type_5 *)((int)var_12 + -0x34))->e_shnum = (short)((type_7)uVar4 >> 0x10);
    ((type_5 *)((int)var_12 + -0x34))->e_shstrndx = (short)uVar4;
    var_1 = (type_2)
        (((type_5 *)var_1)->e_ident_magic_str +
        ((*(int *)((int)var_11 + var_1 * 2 * 2) != 0 || *(int *)((int)var_3 + var_1 * 2 * 2) != 0) - 1));
    do {
      if (var_1 < 3) goto LAB_00058924;
      puStack_5c = var_10;
      var_25 = (type_5 *)var_11;
      var_24 = var_3;
      var_13 = var_27;
      in_stack_ffffffa0 = (type_5 *)M;
      var_1 = (*(type_11 *)PTR___gmpn_hgcd_step_0009d51c)(var_1);
    } while ((type_5 *)var_1 != (type_5 *)0x0);
    var_19 = 1;
  }
LAB_00058820:
  if (var_23 == *(type_5 **)var_26) {
    return var_19;
  }
  var_26 = PTR___stack_chk_fail_0009d4d0;
  (*(type_11 *)PTR___stack_chk_fail_0009d4d0)();
  if ((var_23 <= (type_5 *)&DAT_00000001) || (var_24 <= (type_5 *)&DAT_00000001)) {
    return 0;
  }
  if ((var_24 < var_23) || ((var_23 == var_24 && (var_13 < var_25 != 0)))) {
    var_23 = (type_5 *)((int)var_23 + (-(type_7)(var_25 < var_13) - (int)var_24));
    var_19 = *(int *)(var_26 + 0x44940);
    if (var_23 < (type_5 *)0x2) {
      return 0;
    }
    var_25 = (type_5 *)((int)var_25 - (int)var_13);
    var_2 = 0;
    var_9 = 1;
    var_22 = &DAT_00000001;
    var_7 = (type_7)*(type_4 *)(var_19 + *puStack_5c * 8 + 5);
    var_8 = 1;
    if (var_23 < var_24) goto LAB_00058c00;
  }
  else {
    var_24 = (type_5 *)((int)var_24 - (int)(var_23->e_ident_magic_str + ((var_13 < var_25) - 1)));
    var_19 = *(int *)(var_26 + 0x44940);
    if (var_24 < (type_5 *)0x2) {
      return 0;
    }
    var_13 = (type_5 *)((int)var_13 - (int)var_25);
    var_2 = 1;
    var_9 = 0;
    var_22 = &DAT_00000001;
    var_7 = (type_7)*(type_4 *)(var_19 + *puStack_5c * 8 + 1);
    var_8 = 1;
    if (var_23 < var_24) {
LAB_00058c00:
      var_8 = 1;
      var_22 = &DAT_00000001;
      goto LAB_00058c04;
    }
  }
  while (var_23 != var_24) {
    if (var_23 < &Elf32_Ehdr_00010000) {
      var_14 = ((type_7)var_25 >> 0x10) + (int)var_23 * 0x10000;
      var_15 = ((type_7)var_13 >> 0x10) + (int)var_24 * 0x10000;
      goto LAB_00058c5c;
    }
    var_23 = (type_5 *)((int)var_23 + (-(type_7)(var_25 < var_13) - (int)var_24));
    if (var_23 < (type_5 *)0x2) break;
    var_25 = (type_5 *)((int)var_25 - (int)var_13);
    if (var_24 < var_23) {
      var_20 = 0;
      var_27 = var_24;
      var_3 = var_13;
      if ((int)var_23 < 0) {
        var_20 = 1;
        for (; -1 < (int)var_27; var_27 = (type_5 *)(var_14 | (int)var_27 << 1)) {
          var_14 = (type_7)var_3 >> 0x1f;
          var_3 = (type_5 *)((int)var_3 << 1);
          var_20 = var_20 + 1;
        }
        var_14 = 0;
        do {
          var_14 = var_14 << 1;
          if (var_27 < var_23) {
            var_15 = (type_7)(var_25 < var_3);
LAB_00058f3c:
            var_25 = (type_5 *)((int)var_25 - (int)var_3);
            var_23 = (type_5 *)((int)var_23 + (-(int)var_27 - var_15));
            var_14 = var_14 | 1;
          }
          else if ((var_23 == var_27) && (var_3 <= var_25)) {
            var_15 = 0;
            goto LAB_00058f3c;
          }
          var_20 = var_20 + -1;
          var_3 = (type_5 *)((int)var_27 << 0x1f | (type_7)var_3 >> 1);
          var_27 = (type_5 *)((type_7)var_27 >> 1);
        } while (var_20 != 0);
      }
      else {
        do {
          do {
            var_4 = (type_5 *)((int)var_3 << 1);
            var_27 = (type_5 *)((type_7)var_3 >> 0x1f | (int)var_27 << 1);
            var_20 = var_20 + 1;
            var_3 = var_4;
          } while (var_27 < var_23);
        } while ((var_23 == var_27) && (var_4 <= var_25));
        var_14 = 0;
        do {
          var_15 = (int)var_27 << 0x1f;
          var_27 = (type_5 *)((type_7)var_27 >> 1);
          var_4 = (type_5 *)(var_15 | (type_7)var_4 >> 1);
          var_14 = var_14 << 1;
          if (var_27 < var_23) {
            var_15 = (type_7)(var_25 < var_4);
LAB_00058dd8:
            var_25 = (type_5 *)((int)var_25 - (int)var_4);
            var_23 = (type_5 *)((int)var_23 + (-(int)var_27 - var_15));
            var_14 = var_14 | 1;
          }
          else if ((var_27 == var_23) && (var_4 <= var_25)) {
            var_15 = 0;
            goto LAB_00058dd8;
          }
          var_20 = var_20 + -1;
        } while (var_20 != 0);
      }
      var_20 = var_7 * 8 + 4;
      if (var_23 < (type_5 *)0x2) {
        var_9 = var_8 * var_14 + var_9;
        var_22 = var_22 + var_2 * var_14;
        var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_14 & 3));
        break;
      }
      var_14 = var_14 + 1;
      var_16 = var_8 * var_14;
      bVar2 = *(type_4 *)(var_19 + var_20 + (var_14 & 3));
      var_20 = var_2 * var_14;
    }
    else {
      bVar2 = *(type_4 *)(var_19 + var_7 * 8 + 5);
      var_16 = var_8;
      var_20 = var_2;
    }
    var_22 = var_22 + var_20;
    var_9 = var_9 + var_16;
    var_7 = (type_7)bVar2;
    if (var_23 == var_24) break;
LAB_00058c04:
    if (var_24 < &Elf32_Ehdr_00010000) {
      var_14 = ((type_7)var_25 >> 0x10) + (int)var_23 * 0x10000;
      var_15 = ((type_7)var_13 >> 0x10) + (int)var_24 * 0x10000;
      goto LAB_00058c8c;
    }
    var_24 = (type_5 *)((int)var_24 + (-(type_7)(var_13 < var_25) - (int)var_23));
    if (var_24 < (type_5 *)0x2) break;
    var_13 = (type_5 *)((int)var_13 - (int)var_25);
    var_20 = var_7 * 8;
    if (var_23 < var_24) {
      var_16 = 0;
      var_27 = var_23;
      var_3 = var_25;
      if ((int)var_24 < 0) {
        var_16 = 1;
        for (; -1 < (int)var_27; var_27 = (type_5 *)(var_7 | (int)var_27 << 1)) {
          var_7 = (type_7)var_3 >> 0x1f;
          var_3 = (type_5 *)((int)var_3 << 1);
          var_16 = var_16 + 1;
        }
        var_7 = 0;
        do {
          var_7 = var_7 << 1;
          if (var_27 < var_24) {
            var_14 = (type_7)(var_13 < var_3);
LAB_0005900c:
            var_13 = (type_5 *)((int)var_13 - (int)var_3);
            var_24 = (type_5 *)((int)var_24 + (-(int)var_27 - var_14));
            var_7 = var_7 | 1;
          }
          else if ((var_24 == var_27) && (var_3 <= var_13)) {
            var_14 = 0;
            goto LAB_0005900c;
          }
          var_16 = var_16 + -1;
          var_3 = (type_5 *)((int)var_27 << 0x1f | (type_7)var_3 >> 1);
          var_27 = (type_5 *)((type_7)var_27 >> 1);
        } while (var_16 != 0);
      }
      else {
        do {
          do {
            var_4 = (type_5 *)((int)var_3 << 1);
            var_27 = (type_5 *)((type_7)var_3 >> 0x1f | (int)var_27 << 1);
            var_16 = var_16 + 1;
            var_3 = var_4;
          } while (var_27 < var_24);
        } while ((var_24 == var_27) && (var_4 <= var_13));
        var_7 = 0;
        do {
          var_14 = (int)var_27 << 0x1f;
          var_27 = (type_5 *)((type_7)var_27 >> 1);
          var_4 = (type_5 *)(var_14 | (type_7)var_4 >> 1);
          var_7 = var_7 << 1;
          if (var_27 < var_24) {
            var_14 = (type_7)(var_13 < var_4);
LAB_00058d20:
            var_13 = (type_5 *)((int)var_13 - (int)var_4);
            var_24 = (type_5 *)((int)var_24 + (-(int)var_27 - var_14));
            var_7 = var_7 | 1;
          }
          else if ((var_27 == var_24) && (var_4 <= var_13)) {
            var_14 = 0;
            goto LAB_00058d20;
          }
          var_16 = var_16 + -1;
        } while (var_16 != 0);
      }
      if (var_24 < (type_5 *)0x2) {
        var_8 = var_7 * var_9 + var_8;
        var_2 = var_2 + var_7 * (int)var_22;
        var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_7 & 3));
        break;
      }
      var_7 = var_7 + 1;
      var_8 = var_7 * var_9 + var_8;
      var_2 = var_2 + var_7 * (int)var_22;
      var_7 = (type_7)*(type_4 *)(var_19 + var_20 + (var_7 & 3));
    }
    else {
      var_8 = var_8 + var_9;
      var_2 = var_2 + (int)var_22;
      var_7 = (type_7)*(type_4 *)(var_19 + var_20 + 1);
    }
  }
LAB_00058b84:
  in_stack_ffffffa0->e_ident_magic_num = (char)((type_7)var_8 >> 0x18);
  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((type_7)var_8 >> 0x10);
  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((type_7)var_8 >> 8);
  in_stack_ffffffa0->e_ident_magic_str[2] = (char)var_8;
  in_stack_ffffffa0->e_ident_class = (char)((type_7)var_9 >> 0x18);
  in_stack_ffffffa0->e_ident_data = (char)((type_7)var_9 >> 0x10);
  in_stack_ffffffa0->e_ident_version = (char)((type_7)var_9 >> 8);
  in_stack_ffffffa0->e_ident_osabi = (char)var_9;
  in_stack_ffffffa0->e_ident_abiversion = (char)((type_7)var_2 >> 0x18);
  in_stack_ffffffa0->e_ident_pad[0] = (char)((type_7)var_2 >> 0x10);
  in_stack_ffffffa0->e_ident_pad[1] = (char)((type_7)var_2 >> 8);
  in_stack_ffffffa0->e_ident_pad[2] = (char)var_2;
  *(type_8 **)(in_stack_ffffffa0->e_ident_pad + 3) = var_22;
  *puStack_5c = var_7;
  return 1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) 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: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) 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))) (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: (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: (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)))) alternative: (else_clause (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (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 (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (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: (number_literal)) 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)))))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))))))))) (expression_statement (assignment_expression left: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (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: (identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (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))) (expression_statement (assignment_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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)) right: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))))))) (goto_statement label: (statement_identifier)))) (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: (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) (identifier) (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: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal))) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (true)) 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: (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: (break_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))))))) (if_statement 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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_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: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (assignment_expression left: (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)))))) (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal))))) condition: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (assignment_expression left: (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)))))) (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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: (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: (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: (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: (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 (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (number_literal) 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) (identifier) (identifier) (identifier))))) (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: (pointer_expression argument: (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))) (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))))) (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: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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)))) right: (number_literal)))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_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: (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 (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: (number_literal))))))) (labeled_statement label: (statement_identifier) (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: (identifier))))) consequence: (compound_statement (return_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))) (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 (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) 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: (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 (return_statement (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (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 (return_statement (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))) (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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (type_identifier)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))) (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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (break_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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (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))))))) (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: (identifier)))) (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)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_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: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))) (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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (type_identifier)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))) (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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (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: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (break_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: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))))))))) (labeled_statement label: (statement_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: (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: (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: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (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: (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: (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: (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)))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))

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

{
  bool bVar1;
  byte bVar2;
  Elf32_Ehdr *pEVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  Elf32_Ehdr *pEVar7;
  byte *pbVar8;
  int iVar9;
  byte *pbVar10;
  Elf32_Ehdr *pEVar11;
  uint uVar12;
  Elf32_Ehdr *pEVar13;
  uint uVar14;
  Elf32_Ehdr *pEVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  Elf32_Ehdr *pEVar20;
  uint uVar21;
  uint uVar22;
  Elf32_Ehdr *pEVar23;
  undefined *puVar24;
  int iVar25;
  int iVar26;
  Elf32_Ehdr *in_stack_ffffffa0;
  Elf32_Ehdr *local_5c;
  Elf32_Ehdr *local_2c;
  
  puVar24 = PTR___stack_chk_guard_0009d540;
  local_2c = *(Elf32_Ehdr **)PTR___stack_chk_guard_0009d540;
  if ((int)param_3 < 3) {
    pEVar23 = (Elf32_Ehdr *)0x0;
    pEVar11 = param_2;
    pEVar13 = param_3;
    pEVar15 = param_4;
  }
  else {
    iVar25 = (int)param_3 >> 1;
    pEVar20 = (Elf32_Ehdr *)(iVar25 + 1);
    if ((int)param_3 < 400) {
      pEVar23 = (Elf32_Ehdr *)0x0;
      iVar25 = 0;
LAB_000586e4:
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);
      iVar26 = iVar25;
      if (pEVar3 != (Elf32_Ehdr *)0x0) {
        pEVar13 = (Elf32_Ehdr *)(iVar25 * 2);
        param_3 = pEVar3;
        if (pEVar13->e_ident_magic_str + (int)pEVar3->e_ident_magic_str * 0x20 + -1 <=
            (undefined1 *)((int)pEVar20 << 6)) {
          if (iVar25 == 0) {
            pEVar23 = (Elf32_Ehdr *)pEVar20->e_ident_magic_str;
            param_3 = pEVar23;
            if (pEVar23 != pEVar3) {
              pEVar15 = (Elf32_Ehdr *)((int)pEVar3 + (-1 - (int)pEVar20));
              pbVar8 = pEVar3[0x13b13b1].e_ident_pad;
              pEVar11 = (Elf32_Ehdr *)((int)(pbVar8 + 2) * 4);
              pbVar10 = param_1->e_ident_pad + (int)pbVar8 * 4 + -1;
              pEVar7 = pEVar15;
              do {
                pEVar7 = (Elf32_Ehdr *)((int)&pEVar7[-1].e_shstrndx + 1);
                if (*(int *)pbVar10 != 0) {
                  pbVar8 = param_2->e_ident_pad + (int)pbVar8 * 4 + -1;
                  goto LAB_00058780;
                }
                pbVar10 = pbVar10 + -4;
                param_3 = pEVar3;
                iVar26 = 0;
              } while (pEVar7 != (Elf32_Ehdr *)0x0);
            }
          }
          else {
            iVar26 = iVar25 + -1;
            pEVar23 = pEVar20;
LAB_00058978:
            uVar21 = (uint)(((int)pEVar20 * 2 - (int)pEVar3) * 0x20 + iVar25 * -2) >> 5;
            param_1 = (Elf32_Ehdr *)(param_1->e_ident_magic_str + uVar21 * 4 + -1);
            param_2 = (Elf32_Ehdr *)(param_2->e_ident_magic_str + uVar21 * 4 + -1);
            pEVar20 = (Elf32_Ehdr *)((int)pEVar23 - uVar21);
            param_3 = (Elf32_Ehdr *)((int)pEVar3 - uVar21);
          }
        }
        goto LAB_00058864;
      }
      goto LAB_00058870;
    }
    pEVar11 = (Elf32_Ehdr *)
              (*(code *)PTR___gmpn_hgcd_reduce_0009d110)(param_4,param_1,param_2,param_3,iVar25);
    pEVar3 = param_3;
    pEVar23 = pEVar11;
    if (pEVar11 != (Elf32_Ehdr *)0x0) {
      pEVar23 = (Elf32_Ehdr *)0x1;
      pEVar3 = pEVar11;
    }
    while (((int)param_3 * 3 >> 2) + 1 < (int)pEVar3) {
      local_5c = param_5;
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);
      if (pEVar3 == (Elf32_Ehdr *)0x0) goto LAB_00058820;
      pEVar23 = (Elf32_Ehdr *)0x1;
    }
    local_5c = param_5;
    if (iVar25 + 3 < (int)pEVar3) {
      pEVar11 = (Elf32_Ehdr *)&stack0xffffffbc;
      iVar26 = ((int)pEVar20 * 2 - (int)pEVar3) + 1;
      iVar25 = (int)pEVar3 - iVar26;
      (*(code *)PTR___gmpn_hgcd_matrix_init_0009d3bc)(pEVar11,iVar25,param_5);
      pEVar13 = (Elf32_Ehdr *)(param_5->e_ident_pad + ((iVar25 + 1) / 2) * 0x10 + 7);
      pEVar15 = pEVar11;
      in_stack_ffffffa0 = pEVar13;
      iVar25 = MASKED((int)param_1 + iVar26 * 4,(int)param_2 + iVar26 * 4,iVar25);
      if (iVar25 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_0009d1e8)(param_4);
        pEVar23 = (Elf32_Ehdr *)0x1;
        goto LAB_00058820;
      }
    }
    while( true ) {
      pEVar11 = param_1;
      pEVar13 = param_2;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      pEVar3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(pEVar3);
      if (pEVar3 == (Elf32_Ehdr *)0x0) break;
      pEVar23 = (Elf32_Ehdr *)0x1;
    }
  }
  goto LAB_00058820;
  while( true ) {
    pbVar8 = pbVar8 + -4;
    param_3 = pEVar3;
    iVar26 = 0;
    if (pEVar15 == (Elf32_Ehdr *)0x0) break;
LAB_00058780:
    pEVar15 = (Elf32_Ehdr *)((int)&pEVar15[-1].e_shstrndx + 1);
    if (*(int *)pbVar8 != 0) {
      iVar26 = 0x1f;
      goto LAB_00058978;
    }
  }
LAB_00058864:
  pEVar23 = (Elf32_Ehdr *)0x1;
  iVar25 = iVar26;
  if ((int)param_3 < 3) goto LAB_00058870;
  goto LAB_000586e4;
LAB_00058c8c:
  if (uVar22 != uVar14) {
    uVar14 = uVar14 - uVar22;
    if (uVar14 < 0x20000) goto LAB_00058b84;
    iVar9 = uVar21 * 8;
    if (uVar22 < uVar14) {
      iVar16 = 0;
      uVar21 = uVar22;
      if ((int)uVar14 < 0) {
        iVar16 = 1;
        for (; -1 < (int)uVar21; uVar21 = uVar21 << 1) {
          iVar16 = iVar16 + 1;
        }
        uVar5 = 0;
        do {
          iVar16 = iVar16 + -1;
          uVar5 = uVar5 << 1;
          if (uVar21 <= uVar14) {
            uVar14 = uVar14 - uVar21;
            uVar5 = uVar5 | 1;
          }
          uVar21 = uVar21 >> 1;
        } while (iVar16 != 0);
      }
      else {
        do {
          uVar12 = uVar21;
          uVar21 = uVar12 << 1;
          iVar16 = iVar16 + 1;
        } while (uVar21 <= uVar14);
        uVar5 = 0;
        uVar12 = uVar12 & 0x7fffffff;
        do {
          iVar16 = iVar16 + -1;
          uVar5 = uVar5 << 1;
          if (uVar12 <= uVar14) {
            uVar14 = uVar14 - uVar12;
            uVar5 = uVar5 | 1;
          }
          uVar12 = uVar12 >> 1;
        } while (iVar16 != 0);
      }
      if (uVar14 < 0x20000) {
        iVar19 = iVar17 * uVar5 + iVar19;
        iVar26 = iVar18 * uVar5 + iVar26;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));
        goto LAB_00058b84;
      }
      uVar5 = uVar5 + 1;
      iVar19 = iVar17 * uVar5 + iVar19;
      iVar26 = iVar18 * uVar5 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar5 & 3));
    }
    else {
      iVar19 = iVar19 + iVar17;
      iVar26 = iVar26 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);
    }
LAB_00058c5c:
    bVar1 = uVar22 == uVar14;
    uVar22 = uVar22 - uVar14;
    if ((bVar1) || (uVar22 < 0x20000)) goto LAB_00058b84;
    if (uVar14 < uVar22) {
      iVar9 = 0;
      uVar5 = uVar14;
      if ((int)uVar22 < 0) {
        iVar9 = 1;
        for (; -1 < (int)uVar5; uVar5 = uVar5 << 1) {
          iVar9 = iVar9 + 1;
        }
        uVar12 = 0;
        do {
          iVar9 = iVar9 + -1;
          uVar12 = uVar12 << 1;
          if (uVar5 <= uVar22) {
            uVar22 = uVar22 - uVar5;
            uVar12 = uVar12 | 1;
          }
          uVar5 = uVar5 >> 1;
        } while (iVar9 != 0);
      }
      else {
        do {
          uVar6 = uVar5;
          uVar5 = uVar6 << 1;
          iVar9 = iVar9 + 1;
        } while (uVar5 <= uVar22);
        uVar12 = 0;
        uVar6 = uVar6 & 0x7fffffff;
        do {
          iVar9 = iVar9 + -1;
          uVar12 = uVar12 << 1;
          if (uVar6 <= uVar22) {
            uVar22 = uVar22 - uVar6;
            uVar12 = uVar12 | 1;
          }
          uVar6 = uVar6 >> 1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar21 * 8 + 4;
      if (uVar22 < 0x20000) {
        iVar17 = iVar19 * uVar12 + iVar17;
        iVar18 = iVar26 * uVar12 + iVar18;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));
        goto LAB_00058b84;
      }
      uVar12 = uVar12 + 1;
      iVar17 = iVar19 * uVar12 + iVar17;
      iVar18 = iVar26 * uVar12 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar12 & 3));
    }
    else {
      iVar17 = iVar17 + iVar19;
      iVar18 = iVar18 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + uVar21 * 8 + 5);
    }
    goto LAB_00058c8c;
  }
  goto LAB_00058b84;
LAB_00058870:
  pEVar3 = param_2;
  if (iVar26 == 0) {
LAB_00058924:
    local_5c = param_5;
    if (param_3 == (Elf32_Ehdr *)0x2) {
      pEVar20 = (Elf32_Ehdr *)&stack0xffffffbc;
      pEVar15 = *(Elf32_Ehdr **)pEVar3;
      pEVar13 = *(Elf32_Ehdr **)&pEVar3->e_ident_class;
      pEVar11 = *(Elf32_Ehdr **)param_1;
      uVar4._0_1_ = param_1->e_ident_class;
      uVar4._1_1_ = param_1->e_ident_data;
      uVar4._2_1_ = param_1->e_ident_version;
      uVar4._3_1_ = param_1->e_ident_osabi;
      in_stack_ffffffa0 = pEVar20;
      iVar25 = (*(code *)PTR___gmpn_hgcd2_0009d460)(uVar4);
      if (iVar25 != 0) {
        (*(code *)PTR___gmpn_hgcd_matrix_mul_1_0009d3f4)(param_4);
        pEVar23 = (Elf32_Ehdr *)0x1;
        pEVar11 = pEVar20;
        pEVar13 = param_5;
      }
    }
  }
  else {
    pEVar15 = (Elf32_Ehdr *)(0x20 - iVar26);
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_1,param_1,param_3,pEVar15);
    param_1[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);
    param_1[-0xffffffff00000001].e_shstrndx = (short)uVar4;
    param_1 = (Elf32_Ehdr *)&param_1[-1].e_shnum;
    pEVar3 = (Elf32_Ehdr *)&param_2[-1].e_shnum;
    pEVar11 = param_2;
    pEVar13 = param_3;
    uVar4 = (*(code *)PTR___gmpn_rshift_0009d560)(param_2);
    param_2[-0xffffffff00000001].e_shnum = (short)((uint)uVar4 >> 0x10);
    param_2[-0xffffffff00000001].e_shstrndx = (short)uVar4;
    param_3 = (Elf32_Ehdr *)
              (param_3->e_ident_magic_str +
              ((*(int *)((int)param_1 + (int)param_3 * 2 * 2) != 0 ||
               *(int *)((int)pEVar3 + (int)param_3 * 2 * 2) != 0) - 1));
    do {
      if ((int)param_3 < 3) goto LAB_00058924;
      local_5c = param_5;
      pEVar11 = param_1;
      pEVar13 = pEVar3;
      pEVar15 = pEVar20;
      in_stack_ffffffa0 = param_4;
      param_3 = (Elf32_Ehdr *)(*(code *)PTR___gmpn_hgcd_step_0009d51c)(param_3);
    } while (param_3 != (Elf32_Ehdr *)0x0);
    pEVar23 = (Elf32_Ehdr *)0x1;
  }
LAB_00058820:
  if (local_2c == *(Elf32_Ehdr **)puVar24) {
    return pEVar23;
  }
  puVar24 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  if ((local_2c < (Elf32_Ehdr *)0x2) || (pEVar13 < (Elf32_Ehdr *)0x2)) {
    return (Elf32_Ehdr *)0x0;
  }
  if ((pEVar13 < local_2c) || ((local_2c == pEVar13 && (pEVar15 < pEVar11 != 0)))) {
    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));
    iVar25 = *(int *)(puVar24 + 0x44940);
    if (local_2c < (Elf32_Ehdr *)0x2) {
      return (Elf32_Ehdr *)0x0;
    }
    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);
    iVar26 = 0;
    iVar17 = 1;
    iVar18 = 1;
    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 5);
    iVar19 = 1;
    if (local_2c < pEVar13) goto LAB_00058c00;
  }
  else {
    pEVar13 = (Elf32_Ehdr *)
              ((int)pEVar13 - (int)(local_2c->e_ident_magic_str + ((pEVar15 < pEVar11) - 1)));
    iVar25 = *(int *)(puVar24 + 0x44940);
    if (pEVar13 < (Elf32_Ehdr *)0x2) {
      return (Elf32_Ehdr *)0x0;
    }
    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);
    iVar26 = 1;
    iVar17 = 0;
    iVar18 = 1;
    uVar21 = (uint)*(byte *)(iVar25 + *(int *)local_5c * 8 + 1);
    iVar19 = 1;
    if (local_2c < pEVar13) {
LAB_00058c00:
      iVar19 = 1;
      iVar18 = 1;
      goto LAB_00058c04;
    }
  }
  while (local_2c != pEVar13) {
    if (local_2c < &Elf32_Ehdr_00010000) {
      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;
      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;
      goto LAB_00058c5c;
    }
    local_2c = (Elf32_Ehdr *)((int)local_2c + (-(uint)(pEVar11 < pEVar15) - (int)pEVar13));
    if (local_2c < (Elf32_Ehdr *)0x2) break;
    pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar15);
    if (pEVar13 < local_2c) {
      iVar9 = 0;
      pEVar23 = pEVar13;
      pEVar20 = pEVar15;
      if ((int)local_2c < 0) {
        iVar9 = 1;
        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar22 | (int)pEVar23 << 1)) {
          uVar22 = (uint)pEVar20 >> 0x1f;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);
          iVar9 = iVar9 + 1;
        }
        uVar22 = 0;
        do {
          uVar22 = uVar22 << 1;
          if (pEVar23 < local_2c) {
            uVar14 = (uint)(pEVar11 < pEVar20);
LAB_00058f3c:
            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar20);
            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));
            uVar22 = uVar22 | 1;
          }
          else if ((local_2c == pEVar23) && (pEVar20 <= pEVar11)) {
            uVar14 = 0;
            goto LAB_00058f3c;
          }
          iVar9 = iVar9 + -1;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
        } while (iVar9 != 0);
      }
      else {
        do {
          do {
            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);
            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);
            iVar9 = iVar9 + 1;
            pEVar20 = pEVar3;
          } while (pEVar23 < local_2c);
        } while ((local_2c == pEVar23) && (pEVar3 <= pEVar11));
        uVar22 = 0;
        do {
          uVar14 = (int)pEVar23 << 0x1f;
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
          pEVar3 = (Elf32_Ehdr *)(uVar14 | (uint)pEVar3 >> 1);
          uVar22 = uVar22 << 1;
          if (pEVar23 < local_2c) {
            uVar14 = (uint)(pEVar11 < pEVar3);
LAB_00058dd8:
            pEVar11 = (Elf32_Ehdr *)((int)pEVar11 - (int)pEVar3);
            local_2c = (Elf32_Ehdr *)((int)local_2c + (-(int)pEVar23 - uVar14));
            uVar22 = uVar22 | 1;
          }
          else if ((pEVar23 == local_2c) && (pEVar3 <= pEVar11)) {
            uVar14 = 0;
            goto LAB_00058dd8;
          }
          iVar9 = iVar9 + -1;
        } while (iVar9 != 0);
      }
      iVar9 = uVar21 * 8 + 4;
      if (local_2c < (Elf32_Ehdr *)0x2) {
        iVar17 = iVar19 * uVar22 + iVar17;
        iVar18 = iVar26 * uVar22 + iVar18;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar22 & 3));
        break;
      }
      uVar22 = uVar22 + 1;
      iVar16 = iVar19 * uVar22;
      bVar2 = *(byte *)(iVar25 + iVar9 + (uVar22 & 3));
      iVar9 = iVar26 * uVar22;
    }
    else {
      bVar2 = *(byte *)(iVar25 + uVar21 * 8 + 5);
      iVar16 = iVar19;
      iVar9 = iVar26;
    }
    iVar18 = iVar18 + iVar9;
    iVar17 = iVar17 + iVar16;
    uVar21 = (uint)bVar2;
    if (local_2c == pEVar13) break;
LAB_00058c04:
    if (pEVar13 < &Elf32_Ehdr_00010000) {
      uVar22 = ((uint)pEVar11 >> 0x10) + (int)local_2c * 0x10000;
      uVar14 = ((uint)pEVar15 >> 0x10) + (int)pEVar13 * 0x10000;
      goto LAB_00058c8c;
    }
    pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(uint)(pEVar15 < pEVar11) - (int)local_2c));
    if (pEVar13 < (Elf32_Ehdr *)0x2) break;
    pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar11);
    iVar9 = uVar21 * 8;
    if (local_2c < pEVar13) {
      iVar16 = 0;
      pEVar23 = local_2c;
      pEVar20 = pEVar11;
      if ((int)pEVar13 < 0) {
        iVar16 = 1;
        for (; -1 < (int)pEVar23; pEVar23 = (Elf32_Ehdr *)(uVar21 | (int)pEVar23 << 1)) {
          uVar21 = (uint)pEVar20 >> 0x1f;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar20 << 1);
          iVar16 = iVar16 + 1;
        }
        uVar21 = 0;
        do {
          uVar21 = uVar21 << 1;
          if (pEVar23 < pEVar13) {
            uVar22 = (uint)(pEVar15 < pEVar20);
LAB_0005900c:
            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar20);
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));
            uVar21 = uVar21 | 1;
          }
          else if ((pEVar13 == pEVar23) && (pEVar20 <= pEVar15)) {
            uVar22 = 0;
            goto LAB_0005900c;
          }
          iVar16 = iVar16 + -1;
          pEVar20 = (Elf32_Ehdr *)((int)pEVar23 << 0x1f | (uint)pEVar20 >> 1);
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
        } while (iVar16 != 0);
      }
      else {
        do {
          do {
            pEVar3 = (Elf32_Ehdr *)((int)pEVar20 << 1);
            pEVar23 = (Elf32_Ehdr *)((uint)pEVar20 >> 0x1f | (int)pEVar23 << 1);
            iVar16 = iVar16 + 1;
            pEVar20 = pEVar3;
          } while (pEVar23 < pEVar13);
        } while ((pEVar13 == pEVar23) && (pEVar3 <= pEVar15));
        uVar21 = 0;
        do {
          uVar22 = (int)pEVar23 << 0x1f;
          pEVar23 = (Elf32_Ehdr *)((uint)pEVar23 >> 1);
          pEVar3 = (Elf32_Ehdr *)(uVar22 | (uint)pEVar3 >> 1);
          uVar21 = uVar21 << 1;
          if (pEVar23 < pEVar13) {
            uVar22 = (uint)(pEVar15 < pEVar3);
LAB_00058d20:
            pEVar15 = (Elf32_Ehdr *)((int)pEVar15 - (int)pEVar3);
            pEVar13 = (Elf32_Ehdr *)((int)pEVar13 + (-(int)pEVar23 - uVar22));
            uVar21 = uVar21 | 1;
          }
          else if ((pEVar23 == pEVar13) && (pEVar3 <= pEVar15)) {
            uVar22 = 0;
            goto LAB_00058d20;
          }
          iVar16 = iVar16 + -1;
        } while (iVar16 != 0);
      }
      if (pEVar13 < (Elf32_Ehdr *)0x2) {
        iVar19 = uVar21 * iVar17 + iVar19;
        iVar26 = uVar21 * iVar18 + iVar26;
        uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));
        break;
      }
      uVar21 = uVar21 + 1;
      iVar19 = uVar21 * iVar17 + iVar19;
      iVar26 = uVar21 * iVar18 + iVar26;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + (uVar21 & 3));
    }
    else {
      iVar19 = iVar19 + iVar17;
      iVar26 = iVar26 + iVar18;
      uVar21 = (uint)*(byte *)(iVar25 + iVar9 + 1);
    }
  }
LAB_00058b84:
  in_stack_ffffffa0->e_ident_magic_num = (char)((uint)iVar19 >> 0x18);
  in_stack_ffffffa0->e_ident_magic_str[0] = (char)((uint)iVar19 >> 0x10);
  in_stack_ffffffa0->e_ident_magic_str[1] = (char)((uint)iVar19 >> 8);
  in_stack_ffffffa0->e_ident_magic_str[2] = (char)iVar19;
  in_stack_ffffffa0->e_ident_class = (char)((uint)iVar17 >> 0x18);
  in_stack_ffffffa0->e_ident_data = (char)((uint)iVar17 >> 0x10);
  in_stack_ffffffa0->e_ident_version = (char)((uint)iVar17 >> 8);
  in_stack_ffffffa0->e_ident_osabi = (char)iVar17;
  in_stack_ffffffa0->e_ident_abiversion = (char)((uint)iVar26 >> 0x18);
  in_stack_ffffffa0->e_ident_pad[0] = (char)((uint)iVar26 >> 0x10);
  in_stack_ffffffa0->e_ident_pad[1] = (char)((uint)iVar26 >> 8);
  in_stack_ffffffa0->e_ident_pad[2] = (char)iVar26;
  *(int *)(in_stack_ffffffa0->e_ident_pad + 3) = iVar18;
  local_5c->e_ident_magic_num = (char)(uVar21 >> 0x18);
  local_5c->e_ident_magic_str[0] = (char)(uVar21 >> 0x10);
  local_5c->e_ident_magic_str[1] = (char)(uVar21 >> 8);
  local_5c->e_ident_magic_str[2] = (char)uVar21;
  return (Elf32_Ehdr *)0x1;
}

