
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */

bool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)

{
  uchar *puVar1;
  byte bVar2;
  void *__src;
  uint uVar3;
  int *piVar4;
  code *pcVar5;
  Relobj *pRVar6;
  _func_int_varargs **pp_Var7;
  _func_int_varargs *p_Var8;
  void *pvVar9;
  ushort uVar10;
  char cVar11;
  int *in_EAX;
  iterator __position;
  Dwarf_info_reader *pDVar12;
  undefined4 uVar13;
  uint uVar14;
  int iVar15;
  uint uVar16;
  size_t __n;
  void *__dest;
  uint uVar17;
  int iVar18;
  anon_union_4_3_97895b06_for_aux aVar19;
  int iVar20;
  undefined4 uVar21;
  void *pvVar22;
  uint *puVar23;
  int iVar24;
  uchar *puVar25;
  uint uVar26;
  ulonglong uVar27;
  uint64_t uVar28;
  int local_74;
  uchar *local_70;
  uchar *local_6c;
  uchar *pattr;
  size_t len;
  off_t str_off;
  Attribute_value attr_value;
  
  iVar18 = in_EAX[10];
  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  pDVar12 = (Dwarf_info_reader *)*in_EAX;
  iVar20 = (int)pDVar12->cu_offset_;
  puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20;
  if (pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1) {
    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);
    return false;
  }
  if (puVar1 == (uchar *)0x0) {
    return false;
  }
  pattr = puVar1 + in_EAX[4];
  iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8);
  uVar26 = iVar20 >> 3;
  if (0xccccccc < uVar26) {
                    /* WARNING: Subroutine does not return */
    std::__throw_length_error("vector::reserve");
  }
  __src = (void *)in_EAX[0xb];
  if ((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26) {
    pvVar9 = (void *)in_EAX[0xc];
    __n = (int)pvVar9 - (int)__src;
    if (uVar26 == 0) {
      __dest = (void *)0x0;
      pvVar22 = __src;
    }
    else {
      __dest = operator_new(uVar26 * 0x14);
      pvVar22 = (void *)in_EAX[0xb];
    }
    if (__src != pvVar9) {
      memmove(__dest,__src,__n);
    }
    if (pvVar22 != (void *)0x0) {
      operator_delete(pvVar22);
    }
    in_EAX[0xb] = (int)__dest;
    in_EAX[0xc] = __n + (int)__dest;
    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);
    iVar18 = in_EAX[10];
    if (uVar26 != 0) goto LAB_00057480;
  }
  else {
    if (uVar26 == 0) goto LAB_000575e3;
LAB_00057480:
    local_74 = 0;
    do {
      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));
      uVar26 = puVar23[1];
      uVar3 = *puVar23;
      if (uVar26 == 0x16) {
        bVar2 = *pattr;
        uVar27 = (ulonglong)bVar2;
        local_70 = pattr + 1;
        if ((char)bVar2 < '\0') {
          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);
          local_70 = pattr + len;
        }
        else {
          len = 1;
        }
        uVar26 = (uint)uVar27;
        pattr = local_70;
      }
      puVar25 = pattr;
      uVar17 = (int)pattr - (int)puVar1;
      iVar18 = uVar17 + in_EAX[2];
      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);
      attr_value.aux.shndx = 0;
      attr_value.attr = uVar3;
      attr_value.form = uVar26;
      if (uVar26 == 0xe) {
        piVar4 = *(int **)(*in_EAX + 8);
        iVar15 = *piVar4;
        pcVar5 = *(code **)(iVar15 + 0xc);
        if (*(int *)(*in_EAX + 0x44) == 4) {
          if (pcVar5 == Relobj::is_big_endian) {
            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);
          }
          else {
            cVar11 = (*pcVar5)(piVar4);
          }
          uVar26 = *(uint *)pattr;
          if (cVar11 != '\0') {
            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |
                     uVar26 << 0x18;
          }
          pattr = pattr + 4;
          str_off = (off_t)uVar26;
        }
        else {
          if (pcVar5 == Relobj::is_big_endian) {
            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);
          }
          else {
            cVar11 = (*pcVar5)(piVar4);
          }
          uVar26 = *(uint *)pattr;
          uVar17 = *(uint *)(pattr + 4);
          uVar14 = uVar17;
          if (cVar11 != '\0') {
            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |
                     uVar26 << 0x18;
            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                     uVar17 << 0x18;
          }
          pattr = pattr + 8;
          str_off = CONCAT44(uVar14,uVar26);
        }
        attr_value.aux.shndx =
             Dwarf_info_reader::lookup_reloc
                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);
        attr_value.val.refval = str_off;
        if (uVar3 != 0x31) {
          if (uVar3 < 0x32) {
            if ((uVar3 != 1) && (uVar3 == 3)) {
LAB_00057d36:
              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;
              in_EAX[0x11] = attr_value.val.intval._4_4_;
              in_EAX[0x10] = (int)attr_value.val.stringval;
            }
          }
          else {
            uVar13 = (char *)str_off;
            uVar21 = str_off._4_4_;
            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {
LAB_00057b8d:
              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;
              in_EAX[0x13] = (int)uVar13;
              in_EAX[0x14] = uVar21;
            }
          }
        }
LAB_00057590:
        __position._M_current = (Attribute_value *)in_EAX[0xc];
        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;
LAB_0005759c:
        (__position._M_current)->attr = attr_value.attr;
        (__position._M_current)->form = attr_value.form;
        ((__position._M_current)->val).stringval = attr_value.val.stringval;
        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;
        (__position._M_current)->aux = attr_value.aux;
        in_EAX[0xc] = (int)(__position._M_current + 1);
      }
      else {
        if (0xe < uVar26) {
          if (uVar26 == 0x15) {
            bVar2 = *pattr;
            if ((char)bVar2 < '\0') {
              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);
              pattr = pattr + len;
            }
            else {
              len = 1;
              attr_value.val.intval._1_7_ = 0;
              attr_value.val.uintval._0_1_ = bVar2;
              pattr = pattr + 1;
            }
joined_r0x00057a0a:
            if (uVar3 == 0x31) {
LAB_000577b8:
              in_EAX[0x18] = (int)attr_value.val.stringval;
              in_EAX[0x19] = attr_value.val.intval._4_4_;
            }
            else if (uVar3 < 0x32) {
LAB_00057a16:
              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {
                in_EAX[8] = (int)attr_value.val.stringval;
                in_EAX[9] = attr_value.val.intval._4_4_;
              }
            }
            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {
LAB_00057b31:
              if (uVar26 == 8) {
                in_EAX[0x12] = (int)attr_value.val.stringval;
              }
              else if (uVar26 == 0xe) {
                uVar13 = attr_value.val.stringval;
                uVar21 = attr_value.val.intval._4_4_;
                goto LAB_00057b8d;
              }
            }
            else {
LAB_00057931:
              if (uVar3 == 0x47) {
                uVar13 = attr_value.val.stringval;
                uVar21 = attr_value.val.intval._4_4_;
LAB_00057942:
                in_EAX[0x16] = (int)uVar13;
                in_EAX[0x17] = uVar21;
              }
            }
          }
          else if (uVar26 < 0x16) {
            if (uVar26 != 0x11) {
              if (uVar26 < 0x12) {
                if (uVar26 != 0xf) {
                  if (uVar26 != 0x10) {
                    return false;
                  }
                  pDVar12 = (Dwarf_info_reader *)*in_EAX;
                  uVar26 = pDVar12->address_size_;
                  if (2 < pDVar12->cu_version_) {
                    uVar26 = pDVar12->offset_size_;
                  }
                  if (uVar26 == 4) goto LAB_00057e35;
LAB_000578c9:
                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);
                  goto LAB_000578e2;
                }
LAB_00057ac5:
                bVar2 = *pattr;
                if ((char)bVar2 < '\0') {
                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);
                  pattr = pattr + len;
                }
                else {
                  len = 1;
                  attr_value.val.intval._1_7_ = 0;
                  attr_value.val.uintval._0_1_ = bVar2;
                  pattr = pattr + 1;
                }
                goto LAB_00057d6a;
              }
              if (uVar26 == 0x13) {
                pDVar12 = (Dwarf_info_reader *)*in_EAX;
                goto LAB_00057993;
              }
              if (uVar26 < 0x14) {
                piVar4 = *(int **)(*in_EAX + 8);
                pcVar5 = *(code **)(*piVar4 + 0xc);
                if (pcVar5 == Relobj::is_big_endian) {
                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
                }
                else {
                  cVar11 = (*pcVar5)(piVar4);
                }
                    /* WARNING: Load size is inaccurate */
                attr_value.val.blockval._0_2_ = *pattr;
                if (cVar11 != '\0') {
                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);
                }
                attr_value.val.intval._2_6_ = 0;
                pattr = pattr + 2;
                goto joined_r0x00057a0a;
              }
              piVar4 = *(int **)(*in_EAX + 8);
              pcVar5 = *(code **)(*piVar4 + 0xc);
              if (pcVar5 == Relobj::is_big_endian) {
                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                cVar11 = (*pcVar5)(piVar4);
              }
              uVar17 = *(uint *)pattr;
              uVar14 = *(uint *)(pattr + 4);
              uVar16 = uVar14;
              if (cVar11 != '\0') {
                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                         uVar17 << 0x18;
                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |
                         uVar14 << 0x18;
              }
              pattr = pattr + 8;
              str_off = CONCAT44(uVar16,uVar17);
LAB_000579dc:
              attr_value.aux.shndx =
                   Dwarf_info_reader::lookup_reloc
                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);
              attr_value.val.refval = str_off;
              goto joined_r0x00057a0a;
            }
            uVar21 = 0;
            puVar25 = pattr + 1;
            uVar13 = (char *)CONCAT31(0,*pattr);
            attr_value.val.intval._4_4_ = 0;
            attr_value.val.stringval = uVar13;
            pattr = puVar25;
            if (uVar3 == 0x31) goto LAB_000577b8;
            if (uVar3 < 0x32) {
              if (uVar3 == 1) {
                in_EAX[8] = (int)uVar13;
                in_EAX[9] = 0;
              }
            }
            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;
          }
          else {
            if (uVar26 == 0x19) {
              attr_value.val.intval = 1;
            }
            else {
              if (uVar26 < 0x1a) {
                if (uVar26 != 0x17) {
                  if (uVar26 != 0x18) {
                    return false;
                  }
                  goto LAB_00057851;
                }
                pDVar12 = (Dwarf_info_reader *)*in_EAX;
                if (pDVar12->offset_size_ != 4) {
                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);
                  goto LAB_000579dc;
                }
LAB_00057993:
                pRVar6 = pDVar12->object_;
                pp_Var7 = (pRVar6->super_Object)._vptr_Object;
                p_Var8 = pp_Var7[3];
                if (p_Var8 == Relobj::is_big_endian) {
                  iVar15 = (*pp_Var7[0x3a])(pRVar6);
                  cVar11 = (char)iVar15;
                }
                else {
                  iVar15 = (*p_Var8)(pRVar6);
                  cVar11 = (char)iVar15;
                }
                uVar17 = *(uint *)pattr;
                if (cVar11 != '\0') {
                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                           uVar17 << 0x18;
                }
                pattr = pattr + 4;
                str_off = (off_t)uVar17;
                goto LAB_000579dc;
              }
              if (uVar26 != 0x20) {
                if (uVar26 < 0x20) {
                  return false;
                }
                if (1 < uVar26 - 0x1f01) {
                  return false;
                }
                goto LAB_00057ac5;
              }
              piVar4 = *(int **)(*in_EAX + 8);
              pcVar5 = *(code **)(*piVar4 + 0xc);
              if (pcVar5 == Relobj::is_big_endian) {
                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                cVar11 = (*pcVar5)(piVar4);
              }
                    /* WARNING: Load size is inaccurate */
              attr_value.val.blockval = *pattr;
              uVar17 = *(uint *)(pattr + 4);
              attr_value.val.uintval._4_4_ = uVar17;
              if (cVar11 != '\0') {
                attr_value.val.uintval._4_4_ =
                     (uint)attr_value.val.stringval >> 0x18 |
                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |
                     ((uint)attr_value.val.stringval & 0xff00) << 8 |
                     (int)attr_value.val.stringval << 0x18;
                attr_value.val.stringval =
                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                             uVar17 << 0x18);
              }
              pattr = pattr + 8;
            }
            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;
joined_r0x00057e18:
            if (uVar3 == 3) {
              if (uVar26 == 8) {
LAB_00057816:
                in_EAX[0xf] = (int)attr_value.val.stringval;
              }
              else if (uVar26 == 0xe) goto LAB_00057d36;
            }
          }
          goto LAB_00057590;
        }
        if (uVar26 == 7) {
          piVar4 = *(int **)(*in_EAX + 8);
          pcVar5 = *(code **)(*piVar4 + 0xc);
          if (pcVar5 == Relobj::is_big_endian) {
            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
          }
          else {
            cVar11 = (*pcVar5)(piVar4);
          }
          uVar17 = *(uint *)pattr;
          uVar14 = *(uint *)(pattr + 4);
          uVar16 = uVar14;
          if (cVar11 != '\0') {
            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                     uVar17 << 0x18;
            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |
                     uVar14 << 0x18;
          }
          pattr = pattr + 8;
          str_off = CONCAT44(uVar16,uVar17);
LAB_00057f30:
          attr_value.aux.shndx =
               Dwarf_info_reader::lookup_reloc
                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);
          attr_value.val.refval = str_off;
joined_r0x00057583:
          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {
LAB_00057c63:
            if (uVar3 != 1) goto joined_r0x00057e18;
          }
          goto LAB_00057590;
        }
        if (uVar26 < 8) {
          if (uVar26 == 4) {
            piVar4 = *(int **)(*in_EAX + 8);
            pcVar5 = *(code **)(*piVar4 + 0xc);
            if (pcVar5 == Relobj::is_big_endian) {
              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              cVar11 = (*pcVar5)(piVar4);
            }
            attr_value.aux.shndx = *(uint *)pattr;
            if (cVar11 != '\0') {
              attr_value.aux.shndx =
                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |
                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;
            }
            attr_value.val.blockval = pattr + 4;
            pattr = pattr + 4 + attr_value.aux.shndx;
          }
          else if (uVar26 < 5) {
            if (uVar26 == 1) {
              pDVar12 = (Dwarf_info_reader *)*in_EAX;
              if (pDVar12->address_size_ != 4) goto LAB_000578c9;
LAB_00057e35:
              pRVar6 = pDVar12->object_;
              pp_Var7 = (pRVar6->super_Object)._vptr_Object;
              p_Var8 = pp_Var7[3];
              if (p_Var8 == Relobj::is_big_endian) {
                iVar15 = (*pp_Var7[0x3a])(pRVar6);
                cVar11 = (char)iVar15;
              }
              else {
                iVar15 = (*p_Var8)(pRVar6);
                cVar11 = (char)iVar15;
              }
              uVar26 = *(uint *)pattr;
              if (cVar11 != '\0') {
                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |
                         uVar26 << 0x18;
              }
              pattr = pattr + 4;
              str_off = (off_t)uVar26;
LAB_000578e2:
              attr_value.aux.shndx =
                   Dwarf_info_reader::lookup_reloc
                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);
              attr_value.val.refval = str_off;
              if (uVar3 == 0x31) goto LAB_000577b8;
              if (0x31 < uVar3) {
                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;
                goto LAB_00057931;
              }
              goto LAB_00057a16;
            }
            if (uVar26 != 3) {
              return false;
            }
            piVar4 = *(int **)(*in_EAX + 8);
            pcVar5 = *(code **)(*piVar4 + 0xc);
            if (pcVar5 == Relobj::is_big_endian) {
              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              cVar11 = (*pcVar5)(piVar4);
            }
            uVar10 = *(ushort *)pattr;
            if (cVar11 != '\0') {
              uVar10 = CONCAT11(*pattr,pattr[1]);
            }
            attr_value.aux.shndx._2_2_ = 0;
            attr_value.aux.shndx._0_2_ = uVar10;
            attr_value.val.blockval = pattr + 2;
            pattr = pattr + 2 + attr_value.aux.shndx;
          }
          else {
            if (uVar26 != 5) {
              if (uVar26 != 6) {
                return false;
              }
              piVar4 = *(int **)(*in_EAX + 8);
              pcVar5 = *(code **)(*piVar4 + 0xc);
              if (pcVar5 == Relobj::is_big_endian) {
                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                cVar11 = (*pcVar5)(piVar4);
              }
              uVar17 = *(uint *)pattr;
              if (cVar11 != '\0') {
                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                         uVar17 << 0x18;
              }
              pattr = pattr + 4;
              str_off = (off_t)uVar17;
              goto LAB_00057f30;
            }
            piVar4 = *(int **)(*in_EAX + 8);
            pcVar5 = *(code **)(*piVar4 + 0xc);
            if (pcVar5 == Relobj::is_big_endian) {
              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              cVar11 = (*pcVar5)(piVar4);
            }
                    /* WARNING: Load size is inaccurate */
            attr_value.val.blockval._0_2_ = *pattr;
            if (cVar11 != '\0') {
              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);
            }
            pattr = pattr + 2;
            attr_value.val.intval._2_6_ = 0;
          }
          goto joined_r0x00057583;
        }
        if (uVar26 == 10) {
          attr_value.aux.shndx._1_3_ = 0;
          attr_value.aux.shndx._0_1_ = *pattr;
          attr_value.val.blockval = pattr + 1;
          pattr = pattr + 1 + attr_value.aux.shndx;
          goto joined_r0x00057583;
        }
        if (uVar26 < 0xb) {
          if (uVar26 != 8) {
            if (uVar26 != 9) {
              return false;
            }
LAB_00057851:
            bVar2 = *pattr;
            aVar19.shndx._1_3_ = 0;
            aVar19.shndx._0_1_ = bVar2;
            local_6c = pattr + 1;
            if ((char)bVar2 < '\0') {
              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);
              aVar19.shndx = (uint)uVar28;
              local_70 = pattr;
              local_6c = pattr + len;
            }
            else {
              len = 1;
              local_70 = pattr;
            }
            attr_value.val.blockval = local_6c;
            pattr = local_70 + aVar19.shndx + len;
            attr_value.aux = aVar19;
            goto LAB_00057d6a;
          }
          attr_value.val.blockval = pattr;
          len = strlen((char *)pattr);
          pattr = puVar25 + len + 1;
          if (uVar3 == 0x31) goto LAB_00057590;
          if (0x31 < uVar3) {
            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {
              in_EAX[0x12] = (int)puVar25;
            }
            goto LAB_00057590;
          }
          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;
          goto LAB_00057816;
        }
        if (uVar26 < 0xd) {
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = *pattr;
          pattr = pattr + 1;
LAB_00057d6a:
          if (uVar3 == 0x31) goto LAB_00057590;
          if (0x31 < uVar3) goto LAB_00057d79;
          goto LAB_00057c63;
        }
        bVar2 = *pattr;
        puVar25 = pattr + 1;
        if ((char)bVar2 < '\0') {
          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);
          puVar25 = pattr + len;
        }
        else {
          attr_value.val.intval._4_4_ = 0;
          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);
          len = 1;
          if ((bVar2 & 0x40) != 0) {
            attr_value.val.intval._4_4_ = 0xffffffff;
            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);
          }
        }
        pattr = puVar25;
        if (uVar3 == 0x31) goto LAB_00057590;
        if (0x31 < uVar3) {
LAB_00057d79:
          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;
          goto LAB_00057b31;
        }
        __position._M_current = (Attribute_value *)in_EAX[0xc];
        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;
LAB_00057700:
        std::
        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>
                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                    *)(in_EAX + 0xb),__position,&attr_value);
      }
      local_74 = local_74 + 8;
      iVar18 = in_EAX[10];
    } while (local_74 != iVar20);
  }
  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");
  }
LAB_000575e3:
  uVar26 = (int)pattr - (int)puVar1;
  iVar20 = uVar26 + in_EAX[2];
  iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2]);
  if ((*(byte *)(iVar18 + 4) & 1) == 0) {
    in_EAX[8] = iVar20;
    in_EAX[9] = iVar24;
  }
  else {
    in_EAX[6] = iVar20;
    in_EAX[7] = iVar24;
  }
  *(undefined1 *)(in_EAX + 0xe) = 1;
  return true;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)

{
  byte bVar1;
  void *__src;
  uint uVar2;
  int *piVar3;
  code *pcVar4;
  uint uVar5;
  void *pvVar6;
  ushort uVar7;
  ulonglong uVar8;
  char cVar9;
  int iVar10;
  uint uVar11;
  size_t __n;
  void *__dest;
  uint uVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  void *pvVar17;
  uint *puVar18;
  int iVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  int local_74;
  uint *local_70;
  byte *local_6c;
  uint *local_44;
  size_t local_40;
  undefined8 local_3c;
  uint local_30;
  uint local_2c;
  undefined8 local_28;
  uint local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x573eb;
  iVar13 = param_1[10];
  if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);
  }
  iVar15 = *param_1;
  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);
  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <
      iVar14 + 1U) {
    FUN_00056bf0(iVar15);
    return 0;
  }
  if (iVar14 == 0) {
    return 0;
  }
  local_44 = (uint *)(param_1[4] + iVar14);
  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);
  uVar20 = iVar15 >> 3;
  if (0xccccccc < uVar20) {
                    /* WARNING: Subroutine does not return */
    FUN_0022c7a0("vector::reserve");
  }
  __src = (void *)param_1[0xb];
  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {
    pvVar6 = (void *)param_1[0xc];
    __n = (int)pvVar6 - (int)__src;
    if (uVar20 == 0) {
      __dest = (void *)0x0;
      pvVar17 = __src;
    }
    else {
      __dest = (void *)FUN_001e5200(uVar20 * 0x14);
      pvVar17 = (void *)param_1[0xb];
    }
    if (__src != pvVar6) {
      memmove(__dest,__src,__n);
    }
    if (pvVar17 != (void *)0x0) {
      FUN_001e6db0(pvVar17);
    }
    param_1[0xb] = (int)__dest;
    param_1[0xc] = __n + (int)__dest;
    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);
    iVar13 = param_1[10];
    if (uVar20 != 0) goto LAB_00057480;
  }
  else {
    if (uVar20 == 0) goto LAB_000575e3;
LAB_00057480:
    local_74 = 0;
    do {
      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));
      uVar20 = puVar18[1];
      uVar2 = *puVar18;
      uVar21 = local_28;
      if (uVar20 == 0x16) {
        uVar20 = (uint)(byte)*local_44;
        local_70 = (uint *)((int)local_44 + 1);
        if ((char)(byte)*local_44 < '\0') {
          uVar20 = FUN_00095970(local_70,&local_40,uVar20);
          local_70 = (uint *)(local_40 + (int)local_44);
          uVar21 = local_28;
        }
        else {
          local_40 = 1;
        }
        local_44 = local_70;
      }
      puVar18 = local_44;
      local_28._4_4_ = (uint)(uVar21 >> 0x20);
      uVar12 = (int)local_44 - iVar14;
      iVar13 = uVar12 + param_1[2];
      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);
      local_20 = 0;
      local_30 = uVar2;
      local_2c = uVar20;
      local_28 = uVar21;
      if (uVar20 == 0xe) {
        piVar3 = *(int **)(*param_1 + 8);
        iVar10 = *piVar3;
        pcVar4 = *(code **)(iVar10 + 0xc);
        if (*(int *)(*param_1 + 0x44) == 4) {
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          local_3c._4_4_ = 0;
          if (cVar9 != '\0') {
            local_3c._0_4_ =
                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8
                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);
          }
          local_44 = local_44 + 1;
        }
        else {
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          uVar20 = local_44[1];
          local_3c._4_4_ = uVar20;
          if (cVar9 != '\0') {
            local_3c._4_4_ =
                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;
            local_3c._0_4_ =
                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                         uVar20 << 0x18);
          }
          local_44 = local_44 + 2;
        }
        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        if (uVar2 != 0x31) {
          if (uVar2 < 0x32) {
            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            if ((uVar2 != 1) &&
               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),
               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {
LAB_00057d36:
              param_1[0x15] = local_20;
              *(ulonglong *)(param_1 + 0x10) = uVar8;
              local_3c = uVar21;
              uVar22 = uVar8;
            }
          }
          else {
            local_3c = uVar21;
            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),
               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {
LAB_00057b8d:
              param_1[0x15] = local_20;
              *(ulonglong *)(param_1 + 0x13) = uVar21;
              uVar22 = uVar21;
            }
          }
        }
LAB_00057590:
        puVar18 = (uint *)param_1[0xc];
        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;
LAB_00057700:
        local_28 = uVar22;
        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);
      }
      else {
        if (0xe < uVar20) {
          if (uVar20 == 0x15) {
            bVar1 = (byte)*local_44;
            if ((char)bVar1 < '\0') {
              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);
              local_44 = (uint *)(local_40 + (int)local_44);
            }
            else {
              local_40 = 1;
              uVar22 = (ulonglong)(uint)bVar1;
              local_44 = (uint *)((int)local_44 + 1);
            }
joined_r0x00057a0a:
            if (uVar2 == 0x31) {
LAB_000577b8:
              *(ulonglong *)(param_1 + 0x18) = uVar22;
            }
            else if (uVar2 < 0x32) {
LAB_00057a16:
              if ((uVar2 == 1) && (local_20 == 0)) {
                *(ulonglong *)(param_1 + 8) = uVar22;
              }
            }
            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {
LAB_00057b31:
              local_28._0_4_ = (uint *)uVar22;
              if (uVar20 == 8) {
                param_1[0x12] = (int)(uint *)local_28;
              }
              else {
                uVar21 = uVar22;
                if (uVar20 == 0xe) goto LAB_00057b8d;
              }
            }
            else {
joined_r0x00057934:
              if (uVar2 == 0x47) {
                *(ulonglong *)(param_1 + 0x16) = uVar22;
              }
            }
          }
          else if (uVar20 < 0x16) {
            if (uVar20 != 0x11) {
              if (uVar20 < 0x12) {
                if (uVar20 != 0xf) {
                  if (uVar20 != 0x10) {
                    return 0;
                  }
                  iVar10 = *param_1;
                  iVar16 = *(int *)(iVar10 + 0x48);
                  if (2 < *(uint *)(iVar10 + 0x4c)) {
                    iVar16 = *(int *)(iVar10 + 0x44);
                  }
                  if (iVar16 == 4) goto LAB_00057e35;
LAB_000578c9:
                  uVar21 = FUN_0005b150(iVar10,&local_44);
                  goto LAB_000578e2;
                }
LAB_00057ac5:
                bVar1 = (byte)*local_44;
                if ((char)bVar1 < '\0') {
                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);
                  local_44 = (uint *)(local_40 + (int)local_44);
                }
                else {
                  local_40 = 1;
                  uVar22 = (ulonglong)(uint)bVar1;
                  local_44 = (uint *)((int)local_44 + 1);
                }
                goto LAB_00057d6a;
              }
              if (uVar20 == 0x13) {
                iVar10 = *param_1;
                goto LAB_00057993;
              }
              if (uVar20 < 0x14) {
                piVar3 = *(int **)(*param_1 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                uVar7 = (ushort)*local_44;
                if (cVar9 != '\0') {
                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
                }
                local_44 = (uint *)((int)local_44 + 2);
                uVar22 = (ulonglong)uVar7;
                goto joined_r0x00057a0a;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar12 = *local_44;
              uVar5 = local_44[1];
              uVar11 = uVar5;
              if (cVar9 != '\0') {
                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                         uVar12 << 0x18;
                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |
                         uVar5 << 0x18;
              }
              uVar21 = CONCAT44(uVar11,uVar12);
              local_44 = local_44 + 2;
LAB_000579dc:
              local_3c = uVar21;
              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
              uVar22 = local_3c;
              goto joined_r0x00057a0a;
            }
            puVar18 = (uint *)((int)local_44 + 1);
            uVar20 = (uint)(byte)*local_44;
            uVar22 = (ulonglong)uVar20;
            local_44 = puVar18;
            if (uVar2 == 0x31) goto LAB_000577b8;
            uVar22 = (ulonglong)uVar20;
            if (uVar2 < 0x32) {
              uVar22 = (ulonglong)uVar20;
              if (uVar2 == 1) {
                param_1[8] = uVar20;
                param_1[9] = 0;
                uVar22 = (ulonglong)uVar20;
              }
            }
            else {
joined_r0x00057be3:
              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;
            }
          }
          else {
            if (uVar20 == 0x19) {
              local_28._0_4_ = (uint *)0x1;
              local_28._4_4_ = 0;
            }
            else {
              if (uVar20 < 0x1a) {
                if (uVar20 != 0x17) {
                  if (uVar20 != 0x18) {
                    return 0;
                  }
                  goto LAB_00057851;
                }
                iVar10 = *param_1;
                if (*(int *)(iVar10 + 0x44) != 4) {
                  uVar21 = FUN_0005b150(iVar10,&local_44);
                  goto LAB_000579dc;
                }
LAB_00057993:
                piVar3 = *(int **)(iVar10 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                uVar12 = *local_44;
                if (cVar9 != '\0') {
                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                           uVar12 << 0x18;
                }
                uVar21 = (ulonglong)uVar12;
                local_44 = local_44 + 1;
                goto LAB_000579dc;
              }
              if (uVar20 != 0x20) {
                if (uVar20 < 0x20) {
                  return 0;
                }
                if (1 < uVar20 - 0x1f01) {
                  return 0;
                }
                goto LAB_00057ac5;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              local_28._0_4_ = (uint *)*local_44;
              uVar12 = local_44[1];
              local_28._4_4_ = uVar12;
              if (cVar9 != '\0') {
                local_28._4_4_ =
                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |
                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;
                local_28._0_4_ =
                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
              }
              local_44 = local_44 + 2;
            }
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),
               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))
            goto LAB_00057590;
joined_r0x00057e18:
            uVar22 = uVar8;
            if (uVar2 == 3) {
              if (uVar20 == 8) {
LAB_00057816:
                local_28._0_4_ = (uint *)uVar8;
                param_1[0xf] = (int)(uint *)local_28;
                uVar22 = uVar8;
              }
              else {
                uVar21 = local_3c;
                if (uVar20 == 0xe) goto LAB_00057d36;
              }
            }
          }
          goto LAB_00057590;
        }
        if (uVar20 == 7) {
          piVar3 = *(int **)(*param_1 + 8);
          pcVar4 = *(code **)(*piVar3 + 0xc);
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          uVar12 = local_44[1];
          local_3c._4_4_ = uVar12;
          if (cVar9 != '\0') {
            local_3c._4_4_ =
                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;
            local_3c._0_4_ =
                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                         uVar12 << 0x18);
          }
          local_44 = local_44 + 2;
LAB_00057f30:
          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
          local_28._4_4_ = local_3c._4_4_;
          local_28._0_4_ = (uint *)local_3c;
          goto LAB_00057c54;
        }
        if (uVar20 < 8) {
          if (uVar20 == 4) {
            piVar3 = *(int **)(*param_1 + 8);
            pcVar4 = *(code **)(*piVar3 + 0xc);
            if (pcVar4 == FUN_0003a350) {
              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
            }
            else {
              cVar9 = (*pcVar4)(piVar3);
            }
            local_20 = *local_44;
            if (cVar9 != '\0') {
              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |
                         local_20 << 0x18;
            }
            local_28._0_4_ = local_44 + 1;
            local_44 = (uint *)((int)(uint *)local_28 + local_20);
LAB_00057c54:
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          }
          else {
            if (4 < uVar20) {
              if (uVar20 != 5) {
                if (uVar20 != 6) {
                  return 0;
                }
                piVar3 = *(int **)(*param_1 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                local_3c._0_4_ = (uint *)*local_44;
                local_3c._4_4_ = 0;
                if (cVar9 != '\0') {
                  local_3c._0_4_ =
                       (uint *)((uint)(uint *)local_3c >> 0x18 |
                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                                ((uint)(uint *)local_3c & 0xff00) << 8 |
                               (int)(uint *)local_3c << 0x18);
                }
                local_44 = local_44 + 1;
                goto LAB_00057f30;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar7 = (ushort)*local_44;
              if (cVar9 != '\0') {
                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
              }
              local_28._0_4_ = (uint *)(uint)uVar7;
              local_44 = (uint *)((int)local_44 + 2);
              local_28._4_4_ = 0;
              goto LAB_00057c54;
            }
            if (uVar20 == 1) {
              iVar10 = *param_1;
              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;
LAB_00057e35:
              piVar3 = *(int **)(iVar10 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar20 = *local_44;
              if (cVar9 != '\0') {
                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                         uVar20 << 0x18;
              }
              uVar21 = (ulonglong)uVar20;
              local_44 = local_44 + 1;
LAB_000578e2:
              local_3c = uVar21;
              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
              uVar22 = local_3c;
              if (uVar2 == 0x31) goto LAB_000577b8;
              if (0x31 < uVar2) goto joined_r0x00057be3;
              goto LAB_00057a16;
            }
            if (uVar20 != 3) {
              return 0;
            }
            piVar3 = *(int **)(*param_1 + 8);
            pcVar4 = *(code **)(*piVar3 + 0xc);
            if (pcVar4 == FUN_0003a350) {
              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
            }
            else {
              cVar9 = (*pcVar4)(piVar3);
            }
            uVar7 = (ushort)*local_44;
            if (cVar9 != '\0') {
              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
            }
            local_20 = (uint)uVar7;
            local_28._0_4_ = (uint *)((int)local_44 + 2);
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
            local_44 = (uint *)((int)(uint *)local_28 + local_20);
          }
          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))
          {
LAB_00057c63:
            uVar8 = uVar22;
            if (uVar2 != 1) goto joined_r0x00057e18;
          }
          goto LAB_00057590;
        }
        if (uVar20 == 10) {
          local_28._0_4_ = (uint *)((int)local_44 + 1);
          local_20 = (uint)(byte)*local_44;
          local_44 = (uint *)((int)(uint *)local_28 + local_20);
          goto LAB_00057c54;
        }
        if (uVar20 < 0xb) {
          if (uVar20 != 8) {
            if (uVar20 != 9) {
              return 0;
            }
LAB_00057851:
            uVar12 = (uint)(byte)*local_44;
            local_6c = (byte *)((int)local_44 + 1);
            if ((char)(byte)*local_44 < '\0') {
              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);
              local_70 = local_44;
              local_6c = (byte *)((int)local_44 + local_40);
            }
            else {
              local_40 = 1;
              local_70 = local_44;
            }
            uVar22 = CONCAT44(local_28._4_4_,local_6c);
            local_44 = (uint *)((int)local_70 + uVar12 + local_40);
            local_20 = uVar12;
            goto LAB_00057d6a;
          }
          local_28._0_4_ = local_44;
          local_40 = strlen((char *)local_44);
          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);
          local_44 = (uint *)((int)puVar18 + local_40 + 1);
          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          if (uVar2 == 0x31) goto LAB_00057590;
          if (0x31 < uVar2) {
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {
              param_1[0x12] = (int)puVar18;
              uVar22 = uVar8;
            }
            goto LAB_00057590;
          }
          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))
          goto LAB_00057590;
          goto LAB_00057816;
        }
        if (uVar20 < 0xd) {
          uVar22 = (ulonglong)(byte)*local_44;
          local_44 = (uint *)((int)local_44 + 1);
LAB_00057d6a:
          if (uVar2 == 0x31) goto LAB_00057590;
          if (0x31 < uVar2) goto LAB_00057d79;
          goto LAB_00057c63;
        }
        bVar1 = (byte)*local_44;
        uVar12 = (uint)bVar1;
        puVar18 = (uint *)((int)local_44 + 1);
        if ((char)bVar1 < '\0') {
          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);
          puVar18 = (uint *)((int)local_44 + local_40);
        }
        else {
          uVar22 = (ulonglong)uVar12;
          local_40 = 1;
          if ((bVar1 & 0x40) != 0) {
            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);
          }
        }
        local_44 = puVar18;
        if (uVar2 == 0x31) goto LAB_00057590;
        if (0x31 < uVar2) {
LAB_00057d79:
          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;
          goto LAB_00057b31;
        }
        puVar18 = (uint *)param_1[0xc];
        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;
LAB_0005759c:
        *puVar18 = local_30;
        puVar18[1] = local_2c;
        *(ulonglong *)(puVar18 + 2) = uVar22;
        puVar18[4] = local_20;
        param_1[0xc] = (int)(puVar18 + 5);
        local_28 = uVar22;
      }
      local_74 = local_74 + 8;
      iVar13 = param_1[10];
    } while (local_74 != iVar15);
  }
  if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);
  }
LAB_000575e3:
  uVar20 = (int)local_44 - iVar14;
  iVar14 = uVar20 + param_1[2];
  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);
  if ((*(byte *)(iVar13 + 4) & 1) == 0) {
    param_1[8] = iVar14;
    param_1[9] = iVar15;
  }
  else {
    param_1[6] = iVar14;
    param_1[7] = iVar15;
  }
  *(undefined1 *)(param_1 + 0xe) = 1;
  return 1;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x337c15
SUB ESP,0x6c
MOV EAX,dword ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x20],EBX
TEST EAX,EAX
JZ 0x00058279
MOV EBX,dword ptr [EBP]
MOV ESI,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBX + 0x34]
MOV EDX,dword ptr [EBX + 0x2c]
ADD ESI,ECX
ADD ECX,dword ptr [EBX + 0x3c]
LEA EDI,[EDX + ESI*0x1]
ADD ECX,EDX
LEA ESI,[EDI + 0x1]
MOV dword ptr [ESP + 0x18],EDI
CMP ESI,ECX
JA 0x00057fc0
MOV EBX,dword ptr [ESP + 0x18]
TEST EBX,EBX
JZ 0x00057a49
MOV EDX,dword ptr [EBP + 0x10]
ADD EDX,EBX
LEA EBX,[EBP + 0x2c]
MOV dword ptr [ESP + 0x38],EDX
MOV EDX,dword ptr [EAX + 0xc]
SUB EDX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x28],EBX
MOV ESI,EDX
MOV dword ptr [ESP + 0x1c],EDX
SAR ESI,0x3
CMP ESI,0xccccccc
JA 0x000582b3
MOV EDI,dword ptr [EBP + 0x2c]
MOV EDX,dword ptr [EBP + 0x34]
SUB EDX,EDI
SAR EDX,0x2
IMUL EDX,EDX,-0x33333333
CMP ESI,EDX
JA 0x00057fe0
TEST ESI,ESI
JZ 0x000575e3
LEA EBX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0x2c],EBX
LEA EBX,[ESP + 0x40]
MOV dword ptr [ESP + 0x24],EBX
LEA ESI,[ESI]
NOP
MOV EBX,dword ptr [ESP + 0x8]
ADD EBX,dword ptr [EAX + 0x8]
MOV ESI,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [EBX]
MOV dword ptr [ESP + 0xc],EAX
CMP ESI,0x16
JZ 0x00057af8
MOV ECX,dword ptr [ESP + 0xc]
SUB ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x4c],EDI
MOV EBX,ECX
MOV dword ptr [ESP + 0x50],ESI
SAR EBX,0x1f
ADD ECX,dword ptr [EBP + 0x8]
ADC EBX,dword ptr [EBP + 0xc]
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x14],EBX
CMP ESI,0xe
JZ 0x00057c90
JA 0x00057720
CMP ESI,0x7
JZ 0x00057ee0
JA 0x00057688
CMP ESI,0x4
JZ 0x00057e88
JA 0x00057620
CMP ESI,0x1
JZ 0x00057e28
CMP ESI,0x3
JNZ 0x00057a49
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x000581ed
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOVZX EBX,byte ptr [EDX + 0x1]
MOVZX ECX,byte ptr [EDX]
TEST AL,AL
JZ 0x00058198
SHL ECX,0x8
MOVZX EAX,BL
OR ECX,EAX
ADD EDX,0x2
MOVZX EAX,CX
MOV dword ptr [ESP + 0x54],EDX
ADD EDX,EAX
MOV dword ptr [ESP + 0x5c],EAX
MOV dword ptr [ESP + 0x38],EDX
CMP EDI,0x31
JNZ 0x00057c5d
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x30]
CMP EAX,dword ptr [EBP + 0x34]
JZ 0x00057700
MOV EDX,dword ptr [ESP + 0x4c]
ADD EAX,0x14
MOV dword ptr [EAX + -0x14],EDX
MOV EDX,dword ptr [ESP + 0x50]
MOV dword ptr [EAX + -0x10],EDX
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x5c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EBP + 0x30],EAX
ADD dword ptr [ESP + 0x8],0x8
MOV EAX,dword ptr [EBP + 0x28]
MOV EDI,dword ptr [ESP + 0x8]
CMP EDI,dword ptr [ESP + 0x1c]
JNZ 0x000574a0
TEST EAX,EAX
JZ 0x00058296
MOV ECX,dword ptr [ESP + 0x38]
SUB ECX,dword ptr [ESP + 0x18]
MOV EBX,ECX
SAR EBX,0x1f
ADD ECX,dword ptr [EBP + 0x8]
ADC EBX,dword ptr [EBP + 0xc]
TEST byte ptr [EAX + 0x4],0x1
JNZ 0x00058080
MOV dword ptr [EBP + 0x20],ECX
MOV dword ptr [EBP + 0x24],EBX
MOV byte ptr [EBP + 0x38],0x1
ADD ESP,0x6c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP ESI,0x5
JZ 0x00057f60
CMP ESI,0x6
JNZ 0x00057a49
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x000581fb
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x38]
TEST AL,AL
MOV EDX,dword ptr [ECX]
MOV dword ptr [ESP + 0x44],0x0
MOV EBX,EDX
BSWAP EBX
CMOVNZ EDX,EBX
ADD ECX,0x4
MOV dword ptr [ESP + 0x38],ECX
MOV dword ptr [ESP + 0x40],EDX
JMP 0x00057f30
CMP ESI,0xa
JZ 0x00057c38
JBE 0x000577d0
CMP ESI,0xc
JBE 0x00057d50
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,byte ptr [EAX]
LEA EBX,[EAX + 0x1]
TEST CL,CL
JS 0x000580f8
MOVZX EAX,CL
XOR EDX,EDX
AND ECX,0x40
MOV dword ptr [ESP + 0x3c],0x1
MOV dword ptr [ESP + 0xc],EAX
JZ 0x000576d6
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,0xffffffff
OR ECX,0xffffff80
MOV EAX,ECX
MOV dword ptr [ESP + 0x54],EAX
MOV dword ptr [ESP + 0x58],EDX
MOV dword ptr [ESP + 0x38],EBX
CMP EDI,0x31
JZ 0x00057590
JA 0x00057d79
MOV EAX,dword ptr [EBP + 0x30]
CMP EAX,dword ptr [EBP + 0x34]
JNZ 0x0005759c
LEA ESI,[ESI]
SUB ESP,0x4
LEA EDX,[ESP + 0x50]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x0005b220
ADD ESP,0x10
JMP 0x000575c5
CMP ESI,0x15
JZ 0x00057c08
JA 0x00057950
CMP ESI,0x11
JZ 0x00057ba0
JBE 0x000578a0
CMP ESI,0x13
JZ 0x00057990
JA 0x00057d98
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x00058217
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOVZX EBX,byte ptr [EDX + 0x1]
MOVZX ECX,byte ptr [EDX]
TEST AL,AL
JZ 0x000581b8
SHL ECX,0x8
MOVZX EAX,BL
OR ECX,EAX
ADD EDX,0x2
MOVZX EAX,CX
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x54],EAX
CMP EDI,0x31
JNZ 0x00057a10
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x54]
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [EBP + 0x60],EAX
MOV dword ptr [EBP + 0x64],EDX
JMP 0x00057590
CMP ESI,0x8
JNZ 0x00057848
MOV ESI,dword ptr [ESP + 0xc]
SUB ESP,0xc
MOV dword ptr [ESP + 0x60],ESI
PUSH ESI
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x000295f0
ADD ESP,0x10
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[ESI + EAX*0x1 + 0x1]
MOV dword ptr [ESP + 0x38],EAX
CMP EDI,0x31
JZ 0x00057590
JA 0x00057828
CMP EDI,0x1
JZ 0x00057590
CMP EDI,0x3
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [EBP + 0x3c],EAX
JMP 0x00057590
CMP EDI,0x6e
JZ 0x00057839
CMP EDI,0x2007
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EBP + 0x48],EAX
JMP 0x00057590
CMP ESI,0x9
JNZ 0x00057a49
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ECX,byte ptr [EAX]
LEA EBX,[EAX + 0x1]
MOV dword ptr [ESP + 0x10],EBX
TEST CL,CL
JS 0x00058120
MOV dword ptr [ESP + 0x3c],0x1
MOV EAX,ECX
MOV ECX,0x1
MOV EBX,EAX
MOV dword ptr [ESP + 0x5c],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x54],EAX
LEA EAX,[EBX + ECX*0x1]
ADD EDX,EAX
MOV dword ptr [ESP + 0x38],EDX
JMP 0x00057d6a
CMP ESI,0xf
JZ 0x00057ac5
CMP ESI,0x10
JNZ 0x00057a49
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EAX + 0x48]
CMP dword ptr [EAX + 0x4c],0x2
CMOVA EDX,dword ptr [EAX + 0x44]
CMP EDX,0x4
JZ 0x00057e35
SUB ESP,0x8
LEA EDX,[ESP + 0x40]
PUSH EDX
PUSH EAX
CALL 0x0005b150
MOV dword ptr [ESP + 0x50],EAX
MOV dword ptr [ESP + 0x54],EDX
ADD ESP,0x10
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EBP]
CALL 0x00056b30
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x6c],EAX
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x68],EDX
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
CMP EDI,0x31
JZ 0x000577b8
JBE 0x00057a16
CMP EDI,0x6e
JZ 0x00057590
CMP EDI,0x2007
JZ 0x00057590
CMP EDI,0x47
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0x54]
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [EBP + 0x58],EAX
MOV dword ptr [EBP + 0x5c],EDX
JMP 0x00057590
CMP ESI,0x19
JZ 0x00057df0
JA 0x00057a58
CMP ESI,0x17
JNZ 0x00057a40
MOV EAX,dword ptr [EBP]
CMP dword ptr [EAX + 0x44],0x4
JZ 0x00057993
SUB ESP,0x8
LEA EDX,[ESP + 0x40]
PUSH EDX
PUSH EAX
CALL 0x0005b150
MOV dword ptr [ESP + 0x50],EAX
MOV dword ptr [ESP + 0x54],EDX
ADD ESP,0x10
JMP 0x000579dc
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0x8]
MOV EBX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX]
LEA EBX,[EBX + 0xffcab350]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x000581c8
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x38]
TEST AL,AL
MOV EDX,dword ptr [ECX]
MOV dword ptr [ESP + 0x44],0x0
MOV EBX,EDX
BSWAP EBX
CMOVNZ EDX,EBX
ADD ECX,0x4
MOV dword ptr [ESP + 0x38],ECX
MOV dword ptr [ESP + 0x40],EDX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EBP]
CALL 0x00056b30
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x6c],EAX
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x68],EDX
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
CMP EDI,0x31
JZ 0x000577b8
JA 0x00057b20
CMP EDI,0x1
JNZ 0x00057590
MOV EDX,dword ptr [ESP + 0x5c]
TEST EDX,EDX
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0x54]
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [EBP + 0x20],EAX
MOV dword ptr [EBP + 0x24],EDX
JMP 0x00057590
CMP ESI,0x18
JZ 0x00057851
ADD ESP,0x6c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP ESI,0x20
JNZ 0x00057ab8
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x000581df
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [EDX]
MOV ECX,dword ptr [EDX + 0x4]
TEST AL,AL
JZ 0x00057a9e
MOV EAX,EBX
MOV EBX,ECX
BSWAP EAX
MOV ECX,EAX
BSWAP EBX
ADD EDX,0x8
MOV dword ptr [ESP + 0x54],EBX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x58],ECX
JMP 0x00057e00
JC 0x00057a49
LEA EAX,[ESI + 0xffffe0ff]
CMP EAX,0x1
JA 0x00057a49
MOV EAX,dword ptr [ESP + 0xc]
LEA ECX,[EAX + 0x1]
MOVZX EAX,byte ptr [EAX]
TEST AL,AL
JS 0x00058150
MOV dword ptr [ESP + 0x3c],0x1
XOR EDX,EDX
MOV dword ptr [ESP + 0x54],EAX
MOV dword ptr [ESP + 0x58],EDX
MOV dword ptr [ESP + 0x38],ECX
JMP 0x00057d6a
MOVZX ECX,byte ptr [EAX]
LEA EBX,[EAX + 0x1]
TEST CL,CL
JS 0x00057b50
MOV dword ptr [ESP + 0x3c],0x1
MOV EAX,ECX
MOV dword ptr [ESP + 0xc],EBX
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x000574bd
CMP EDI,0x6e
JZ 0x00057b31
CMP EDI,0x2007
JNZ 0x00057931
CMP ESI,0x8
JNZ 0x00057b78
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EBP + 0x48],EAX
JMP 0x00057590
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x34]
PUSH EBX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00095970
MOV ECX,dword ptr [ESP + 0x4c]
ADD ECX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x1c],ECX
ADD ESP,0x10
JMP 0x00057b10
CMP ESI,0xe
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0x5c]
MOV ECX,dword ptr [ESP + 0x54]
MOV EBX,dword ptr [ESP + 0x58]
MOV dword ptr [EBP + 0x54],EAX
MOV dword ptr [EBP + 0x4c],ECX
MOV dword ptr [EBP + 0x50],EBX
JMP 0x00057590
MOV EBX,dword ptr [ESP + 0xc]
XOR EDX,EDX
LEA EAX,[EBX + 0x1]
MOV dword ptr [ESP + 0x38],EAX
MOVZX EAX,byte ptr [EBX]
MOV dword ptr [ESP + 0x58],EDX
MOV dword ptr [ESP + 0x54],EAX
CMP EDI,0x31
JZ 0x000577b8
JA 0x00057be0
CMP EDI,0x1
JNZ 0x00057590
MOV dword ptr [EBP + 0x20],EAX
MOV dword ptr [EBP + 0x24],EDX
JMP 0x00057590
CMP EDI,0x6e
JZ 0x00057590
CMP EDI,0x2007
JZ 0x00057590
CMP EDI,0x47
JZ 0x00057942
JMP 0x00057590
MOV EAX,dword ptr [ESP + 0xc]
LEA ECX,[EAX + 0x1]
MOVZX EAX,byte ptr [EAX]
TEST AL,AL
JS 0x000580d0
MOV dword ptr [ESP + 0x3c],0x1
XOR EDX,EDX
MOV dword ptr [ESP + 0x54],EAX
MOV dword ptr [ESP + 0x58],EDX
MOV dword ptr [ESP + 0x38],ECX
JMP 0x00057a07
MOV EBX,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0x1]
MOV dword ptr [ESP + 0x38],EAX
MOVZX EDX,byte ptr [EBX]
MOV dword ptr [ESP + 0x54],EAX
ADD EAX,EDX
MOV dword ptr [ESP + 0x5c],EDX
MOV dword ptr [ESP + 0x38],EAX
CMP EDI,0x31
JZ 0x00057590
JA 0x00057590
CMP EDI,0x1
JZ 0x00057590
CMP EDI,0x3
JNZ 0x00057590
CMP ESI,0x8
JZ 0x00057816
CMP ESI,0xe
JNZ 0x00057590
JMP 0x00057d36
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EAX + 0x8]
CMP dword ptr [EAX + 0x44],0x4
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [EDX]
LEA EAX,[EAX + 0xffcab350]
MOV EBX,dword ptr [ECX + 0xc]
JZ 0x00058090
CMP EBX,EAX
JNZ 0x0005825d
SUB ESP,0xc
PUSH EDX
CALL dword ptr [ECX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [EDX]
MOV ECX,dword ptr [EDX + 0x4]
TEST AL,AL
JZ 0x00057cdb
MOV EAX,EBX
MOV EBX,ECX
BSWAP EAX
MOV ECX,EAX
BSWAP EBX
ADD EDX,0x8
MOV dword ptr [ESP + 0x40],EBX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x44],ECX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EBP]
CALL 0x00056b30
MOV ECX,dword ptr [ESP + 0x50]
MOV EBX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x6c],EAX
MOV dword ptr [ESP + 0x64],ECX
MOV dword ptr [ESP + 0x68],EBX
ADD ESP,0x10
CMP EDI,0x31
JZ 0x00057590
JA 0x00058178
CMP EDI,0x1
JZ 0x00057590
CMP EDI,0x3
JNZ 0x00057590
MOV EAX,dword ptr [ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [EBP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [EBP + 0x44],EDX
MOV dword ptr [EBP + 0x40],EAX
JMP 0x00057590
MOV EBX,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0x1]
MOV dword ptr [ESP + 0x38],EAX
MOVZX EAX,byte ptr [EBX]
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x54],EAX
CMP EDI,0x31
JZ 0x00057590
JBE 0x00057c63
CMP EDI,0x6e
JZ 0x00057b31
CMP EDI,0x2007
JNZ 0x00057590
JMP 0x00057b31
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x00058233
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [EDX]
MOV ECX,dword ptr [EDX + 0x4]
TEST AL,AL
JZ 0x00057dd9
MOV EAX,EBX
MOV EBX,ECX
BSWAP EAX
MOV ECX,EAX
BSWAP EBX
ADD EDX,0x8
MOV dword ptr [ESP + 0x40],EBX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x44],ECX
JMP 0x000579dc
MOV dword ptr [ESP + 0x54],0x1
MOV dword ptr [ESP + 0x58],0x0
CMP EDI,0x6e
JZ 0x00057590
CMP EDI,0x2007
JZ 0x00057590
CMP EDI,0x3
JNZ 0x00057590
JMP 0x00057c75
MOV EAX,dword ptr [EBP]
CMP dword ptr [EAX + 0x48],0x4
JNZ 0x000578c9
MOV EAX,dword ptr [EAX + 0x8]
MOV EBX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX]
LEA EBX,[EBX + 0xffcab350]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x0005824f
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x38]
TEST AL,AL
MOV EDX,dword ptr [ECX]
MOV dword ptr [ESP + 0x44],0x0
MOV EBX,EDX
BSWAP EBX
CMOVNZ EDX,EBX
ADD ECX,0x4
MOV dword ptr [ESP + 0x38],ECX
MOV dword ptr [ESP + 0x40],EDX
JMP 0x000578e2
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x00058225
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
MOV ECX,dword ptr [EDX]
MOV EBX,ECX
BSWAP EBX
CMOVNZ ECX,EBX
ADD EDX,0x4
MOV dword ptr [ESP + 0x54],EDX
ADD EDX,ECX
MOV dword ptr [ESP + 0x5c],ECX
MOV dword ptr [ESP + 0x38],EDX
JMP 0x00057c54
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x00058241
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [EDX]
MOV ECX,dword ptr [EDX + 0x4]
TEST AL,AL
JZ 0x00057f21
MOV EAX,EBX
MOV EBX,ECX
BSWAP EAX
MOV ECX,EAX
BSWAP EBX
ADD EDX,0x8
MOV dword ptr [ESP + 0x40],EBX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x44],ECX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EBP]
CALL 0x00056b30
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x6c],EAX
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x68],EDX
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
JMP 0x00057c54
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
LEA EBX,[EBX + 0xffcab350]
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EDX + 0xc]
CMP ECX,EBX
JNZ 0x00058209
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOVZX EBX,byte ptr [EDX + 0x1]
MOVZX ECX,byte ptr [EDX]
TEST AL,AL
JZ 0x000581a8
SHL ECX,0x8
MOVZX EAX,BL
OR ECX,EAX
ADD EDX,0x2
MOVZX EAX,CX
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x54],EAX
JMP 0x00057c54
SUB ESP,0xc
PUSH EBX
CALL 0x00056bf0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x30]
MOV dword ptr [ESP + 0xc],EAX
SUB EAX,EDI
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESI + ESI*0x4]
SHL EAX,0x2
MOV dword ptr [ESP + 0x10],EAX
TEST ESI,ESI
JZ 0x000581d6
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x001e5200
MOV EDX,dword ptr [EBP + 0x2c]
ADD ESP,0x10
MOV ECX,EAX
CMP EDI,dword ptr [ESP + 0xc]
JZ 0x0005803f
MOV dword ptr [ESP + 0x24],EDX
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH EDI
PUSH ECX
MOV EBX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x000298a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JZ 0x0005805b
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0xc
PUSH EDX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x001e6db0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EBP + 0x2c],ECX
ADD EAX,ECX
MOV dword ptr [EBP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,ECX
MOV dword ptr [EBP + 0x34],EAX
MOV EAX,dword ptr [EBP + 0x28]
TEST ESI,ESI
JNZ 0x00057480
JMP 0x000575db
MOV dword ptr [EBP + 0x18],ECX
MOV dword ptr [EBP + 0x1c],EBX
JMP 0x00057606
CMP EBX,EAX
JNZ 0x0005826b
SUB ESP,0xc
PUSH EDX
CALL dword ptr [ECX + 0xe8]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x38]
TEST AL,AL
MOV EDX,dword ptr [ECX]
MOV dword ptr [ESP + 0x44],0x0
MOV EBX,EDX
BSWAP EBX
CMOVNZ EDX,EBX
ADD ECX,0x4
MOV dword ptr [ESP + 0x38],ECX
MOV dword ptr [ESP + 0x40],EDX
JMP 0x00057cea
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH ECX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00095970
MOV ECX,dword ptr [ESP + 0x4c]
ADD ECX,dword ptr [ESP + 0x48]
ADD ESP,0x10
JMP 0x00057c24
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x34]
PUSH EBX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00095a30
MOV ECX,dword ptr [ESP + 0x4c]
MOV EBX,dword ptr [ESP + 0x48]
ADD ESP,0x10
ADD EBX,ECX
JMP 0x000576d6
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x1c]
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00095970
MOV EBX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x1c],EBX
ADD EBX,ECX
MOV dword ptr [ESP + 0x20],EBX
ADD ESP,0x10
JMP 0x00057876
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH ECX
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00095970
MOV ECX,dword ptr [ESP + 0x4c]
ADD ECX,dword ptr [ESP + 0x48]
ADD ESP,0x10
JMP 0x00057ae1
CMP EDI,0x6e
JZ 0x00057b8d
CMP EDI,0x2007
JNZ 0x00057590
JMP 0x00057b8d
SHL EBX,0x8
OR ECX,EBX
JMP 0x0005756c
SHL EBX,0x8
OR ECX,EBX
JMP 0x00057fa5
SHL EBX,0x8
OR ECX,EBX
JMP 0x00057792
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x000579ba
MOV EDX,EDI
XOR ECX,ECX
JMP 0x00058014
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057a87
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057551
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x0005765c
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057f8a
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057777
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057eb2
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057dc2
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057f0a
SUB ESP,0xc
PUSH EAX
CALL ECX
ADD ESP,0x10
JMP 0x00057e5c
SUB ESP,0xc
PUSH EDX
CALL EBX
ADD ESP,0x10
JMP 0x00057cc4
SUB ESP,0xc
PUSH EDX
CALL EBX
ADD ESP,0x10
JMP 0x000580a5
PUSH ECX
MOV EBX,dword ptr [ESP + 0x24]
LEA EAX,[EBX + 0xffef7ef4]
PUSH EAX
LEA EAX,[EBX + 0xffef7b25]
PUSH 0x2a9
PUSH EAX
CALL 0x00069d00
PUSH EAX
MOV EBX,dword ptr [ESP + 0x24]
LEA EAX,[EBX + 0xffef7ee4]
PUSH EAX
LEA EAX,[EBX + 0xffef7bc8]
PUSH 0x206
PUSH EAX
CALL 0x00069d00
SUB ESP,0xc
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffef1583]
PUSH EAX
CALL 0x0022c7a0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "ushort uVar7;" type_identifier identifier ;) (declaration "ulonglong uVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "void *pvVar17;" primitive_type (pointer_declarator "*pvVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulonglong uVar21;" type_identifier identifier ;) (declaration "ulonglong uVar22;" type_identifier identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined8 local_3c;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x573eb;" (assignment_expression "uStack_14 = 0x573eb" identifier = number_literal) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" { comment (expression_statement "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *param_1;" (assignment_expression "iVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" identifier = (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2]" (pointer_expression "*(int *)(iVar15 + 0x2c)" * (cast_expression "(int *)(iVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) + (subscript_expression "param_1[2]" identifier [ number_literal ])) + (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))))) ;) (if_statement "if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" if (parenthesized_expression "((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U)" ( (binary_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U" (call_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" ( (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)" (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c)" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar15 + 0x3c)" * (cast_expression "(int *)(iVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar15 + 0x2c)" * (cast_expression "(int *)(iVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) ))))) ))) < (binary_expression "iVar14 + 1U" identifier + number_literal)) )) (compound_statement "{\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" { (expression_statement "FUN_00056bf0(iVar15);" (call_expression "FUN_00056bf0(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (iVar14 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_44 = (uint *)(param_1[4] + iVar14);" (assignment_expression "local_44 = (uint *)(param_1[4] + iVar14)" identifier = (cast_expression "(uint *)(param_1[4] + iVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[4] + iVar14)" ( (binary_expression "param_1[4] + iVar14" (subscript_expression "param_1[4]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);" (assignment_expression "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" identifier = (binary_expression "*(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" (pointer_expression "*(int *)(iVar13 + 0xc)" * (cast_expression "(int *)(iVar13 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar20 = iVar15 >> 3;" (assignment_expression "uVar20 = iVar15 >> 3" identifier = (binary_expression "iVar15 >> 3" identifier >> number_literal)) ;) (if_statement "if (0xccccccc < uVar20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0022c7a0("vector::reserve");\n  }" if (parenthesized_expression "(0xccccccc < uVar20)" ( (binary_expression "0xccccccc < uVar20" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0022c7a0("vector::reserve");\n  }" { comment (expression_statement "FUN_0022c7a0("vector::reserve");" (call_expression "FUN_0022c7a0("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "__src = (void *)param_1[0xb];" (assignment_expression "__src = (void *)param_1[0xb]" identifier = (cast_expression "(void *)param_1[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" if (parenthesized_expression "((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20)" ( (binary_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20" (call_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[0xd] - (int)__src >> 2) * -0x33333333)" ( (binary_expression "(param_1[0xd] - (int)__src >> 2) * -0x33333333" (parenthesized_expression "(param_1[0xd] - (int)__src >> 2)" ( (binary_expression "param_1[0xd] - (int)__src >> 2" (binary_expression "param_1[0xd] - (int)__src" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }" { (expression_statement "pvVar6 = (void *)param_1[0xc];" (assignment_expression "pvVar6 = (void *)param_1[0xc]" identifier = (cast_expression "(void *)param_1[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "__n = (int)pvVar6 - (int)__src;" (assignment_expression "__n = (int)pvVar6 - (int)__src" identifier = (binary_expression "(int)pvVar6 - (int)__src" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }" { (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar17 = __src;" (assignment_expression "pvVar17 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" else (compound_statement "{\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" { (expression_statement "__dest = (void *)FUN_001e5200(uVar20 * 0x14);" (assignment_expression "__dest = (void *)FUN_001e5200(uVar20 * 0x14)" identifier = (cast_expression "(void *)FUN_001e5200(uVar20 * 0x14)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(uVar20 * 0x14)" identifier (argument_list "(uVar20 * 0x14)" ( (binary_expression "uVar20 * 0x14" identifier * number_literal) ))))) ;) (expression_statement "pvVar17 = (void *)param_1[0xb];" (assignment_expression "pvVar17 = (void *)param_1[0xb]" identifier = (cast_expression "(void *)param_1[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) }))) (if_statement "if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pvVar6)" ( (binary_expression "__src != pvVar6" identifier != identifier) )) (compound_statement "{\n      memmove(__dest,__src,__n);\n    }" { (expression_statement "memmove(__dest,__src,__n);" (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }" if (parenthesized_expression "(pvVar17 != (void *)0x0)" ( (binary_expression "pvVar17 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001e6db0(pvVar17);\n    }" { (expression_statement "FUN_001e6db0(pvVar17);" (call_expression "FUN_001e6db0(pvVar17)" identifier (argument_list "(pvVar17)" ( identifier ))) ;) })) (expression_statement "param_1[0xb] = (int)__dest;" (assignment_expression "param_1[0xb] = (int)__dest" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = __n + (int)__dest;" (assignment_expression "param_1[0xc] = __n + (int)__dest" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "__n + (int)__dest" identifier + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);" (assignment_expression "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest)" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (cast_expression "(int)(uVar20 * 0x14 + (int)__dest)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar20 * 0x14 + (int)__dest)" ( (binary_expression "uVar20 * 0x14 + (int)__dest" (binary_expression "uVar20 * 0x14" identifier * number_literal) + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (uVar20 != 0) goto LAB_00057480;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00057480;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" else (compound_statement "{\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" { (if_statement "if (uVar20 == 0) goto LAB_000575e3;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000575e3;" goto statement_identifier ;)) (labeled_statement "LAB_00057480:\n    local_74 = 0;" statement_identifier : (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);" do (compound_statement "{\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    }" { (expression_statement "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));" (assignment_expression "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8))" identifier = (cast_expression "(uint *)(local_74 + *(int *)(iVar13 + 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + *(int *)(iVar13 + 8))" ( (binary_expression "local_74 + *(int *)(iVar13 + 8)" identifier + (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar20 = puVar18[1];" (assignment_expression "uVar20 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar18;" (assignment_expression "uVar2 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" identifier = identifier) ;) (if_statement "if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" if (parenthesized_expression "(uVar20 == 0x16)" ( (binary_expression "uVar20 == 0x16" identifier == number_literal) )) (compound_statement "{\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" { (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_70 = (uint *)((int)local_44 + 1);" (assignment_expression "local_70 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }" if (parenthesized_expression "((char)(byte)*local_44 < '\0')" ( (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }" { (expression_statement "uVar20 = FUN_00095970(local_70,&local_40,uVar20);" (assignment_expression "uVar20 = FUN_00095970(local_70,&local_40,uVar20)" identifier = (call_expression "FUN_00095970(local_70,&local_40,uVar20)" identifier (argument_list "(local_70,&local_40,uVar20)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "local_70 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_70 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" identifier = identifier) ;) }) (else_clause "else {\n          local_40 = 1;\n        }" else (compound_statement "{\n          local_40 = 1;\n        }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "local_44 = local_70;" (assignment_expression "local_44 = local_70" identifier = identifier) ;) })) (expression_statement "puVar18 = local_44;" (assignment_expression "puVar18 = local_44" identifier = identifier) ;) (expression_statement "local_28._4_4_ = (uint)(uVar21 >> 0x20);" (assignment_expression "local_28._4_4_ = (uint)(uVar21 >> 0x20)" (field_expression "local_28._4_4_" identifier . field_identifier) = (call_expression "(uint)(uVar21 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 >> 0x20)" ( (binary_expression "uVar21 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar12 = (int)local_44 - iVar14;" (assignment_expression "uVar12 = (int)local_44 - iVar14" identifier = (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "iVar13 = uVar12 + param_1[2];" (assignment_expression "iVar13 = uVar12 + param_1[2]" identifier = (binary_expression "uVar12 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);" (assignment_expression "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" identifier = (binary_expression "((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" (binary_expression "((int)uVar12 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "param_1[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar12,param_1[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,param_1[2])" identifier (argument_list "(uVar12,param_1[2])" ( identifier , (subscript_expression "param_1[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_30 = uVar2;" (assignment_expression "local_30 = uVar2" identifier = identifier) ;) (expression_statement "local_2c = uVar20;" (assignment_expression "local_2c = uVar20" identifier = identifier) ;) (expression_statement "local_28 = uVar21;" (assignment_expression "local_28 = uVar21" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (compound_statement "{\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = *piVar3;" (assignment_expression "iVar10 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pcVar4 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar4 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" if (parenthesized_expression "(*(int *)(*param_1 + 0x44) == 4)" ( (binary_expression "*(int *)(*param_1 + 0x44) == 4" (pointer_expression "*(int *)(*param_1 + 0x44)" * (cast_expression "(int *)(*param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x44)" ( (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }" { (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" { (expression_statement "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" ( (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" else (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" { (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar20 = local_44[1];" (assignment_expression "uVar20 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c._4_4_ = uVar20;" (assignment_expression "local_3c._4_4_ = uVar20" (field_expression "local_3c._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" { (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" ( (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" { (if_statement "if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }" { (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" if (parenthesized_expression "((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3))" ( (binary_expression "(uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" ( (comma_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 3" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" { (labeled_statement "LAB_00057d36:\n              param_1[0x15] = local_20;" statement_identifier : (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar8;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar8" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" * (cast_expression "(ulonglong *)(param_1 + 0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) })) }) (else_clause "else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" else (compound_statement "{\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" { (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" { (labeled_statement "LAB_00057b8d:\n              param_1[0x15] = local_20;" statement_identifier : (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x13) = uVar21;" (assignment_expression "*(ulonglong *)(param_1 + 0x13) = uVar21" (pointer_expression "*(ulonglong *)(param_1 + 0x13)" * (cast_expression "(ulonglong *)(param_1 + 0x13)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" identifier = identifier) ;) })) }))) })) (labeled_statement "LAB_00057590:\n        puVar18 = (uint *)param_1[0xc];" statement_identifier : (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;)) (if_statement "if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;" if (parenthesized_expression "(puVar18 != (uint *)param_1[0xd])" ( (binary_expression "puVar18 != (uint *)param_1[0xd]" identifier != (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0005759c;" goto statement_identifier ;)) (labeled_statement "LAB_00057700:\n        local_28 = uVar22;" statement_identifier : (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" identifier = identifier) ;)) (expression_statement "FUN_0005b220(param_1 + 0xb,puVar18,&local_30);" (call_expression "FUN_0005b220(param_1 + 0xb,puVar18,&local_30)" identifier (argument_list "(param_1 + 0xb,puVar18,&local_30)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) , identifier , (pointer_expression "&local_30" & identifier) ))) ;) }) (else_clause "else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" else (compound_statement "{\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" { (if_statement "if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(0xe < uVar20)" ( (binary_expression "0xe < uVar20" number_literal < identifier) )) (compound_statement "{\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" { (if_statement "if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" if (parenthesized_expression "(uVar20 == 0x15)" ( (binary_expression "uVar20 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }" { (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }" { (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier = (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_40" & identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" else (compound_statement "{\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" identifier = (cast_expression "(ulonglong)(uint)bVar1" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (labeled_statement "joined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" statement_identifier : (if_statement "if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }" { (labeled_statement "LAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;" statement_identifier : (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" * (cast_expression "(ulonglong *)(param_1 + 0x18)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (if_statement "if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }" { (labeled_statement "LAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" statement_identifier : (if_statement "if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" if (parenthesized_expression "((uVar2 == 1) && (local_20 == 0))" ( (binary_expression "(uVar2 == 1) && (local_20 == 0)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_20 == 0)" ( (binary_expression "local_20 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" { (expression_statement "*(ulonglong *)(param_1 + 8) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 8)" * (cast_expression "(ulonglong *)(param_1 + 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }" { (labeled_statement "LAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;" statement_identifier : (expression_statement "local_28._0_4_ = (uint *)uVar22;" (assignment_expression "local_28._0_4_ = (uint *)uVar22" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" if (parenthesized_expression "(uVar20 == 8)" ( (binary_expression "uVar20 == 8" identifier == number_literal) )) (compound_statement "{\n                param_1[0x12] = (int)(uint *)local_28;\n              }" { (expression_statement "param_1[0x12] = (int)(uint *)local_28;" (assignment_expression "param_1[0x12] = (int)(uint *)local_28" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" else (compound_statement "{\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" { (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) goto LAB_00057b8d;" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00057b8d;" goto statement_identifier ;)) }))) }) (else_clause "else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (compound_statement "{\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" { (labeled_statement "joined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" statement_identifier : (if_statement "if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" if (parenthesized_expression "(uVar2 == 0x47)" ( (binary_expression "uVar2 == 0x47" identifier == number_literal) )) (compound_statement "{\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" { (expression_statement "*(ulonglong *)(param_1 + 0x16) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x16) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x16)" * (cast_expression "(ulonglong *)(param_1 + 0x16)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) = identifier) ;) }))) })))))))) }) (else_clause "else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" else (if_statement "if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" if (parenthesized_expression "(uVar20 < 0x16)" ( (binary_expression "uVar20 < 0x16" identifier < number_literal) )) (compound_statement "{\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }" { (if_statement "if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" if (parenthesized_expression "(uVar20 != 0x11)" ( (binary_expression "uVar20 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" { (if_statement "if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" if (parenthesized_expression "(uVar20 < 0x12)" ( (binary_expression "uVar20 < 0x12" identifier < number_literal) )) (compound_statement "{\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" { (if_statement "if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" if (parenthesized_expression "(uVar20 != 0xf)" ( (binary_expression "uVar20 != 0xf" identifier != number_literal) )) (compound_statement "{\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" { (if_statement "if (uVar20 != 0x10) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar20 != 0x10)" ( (binary_expression "uVar20 != 0x10" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar16 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x48)" identifier = (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" if (parenthesized_expression "(2 < *(uint *)(iVar10 + 0x4c))" ( (binary_expression "2 < *(uint *)(iVar10 + 0x4c)" number_literal < (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" { (expression_statement "iVar16 = *(int *)(iVar10 + 0x44);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x44)" identifier = (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar16 == 4) goto LAB_00057e35;" if (parenthesized_expression "(iVar16 == 4)" ( (binary_expression "iVar16 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00057e35;" goto statement_identifier ;)) (labeled_statement "LAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);" statement_identifier : (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" identifier = (call_expression "FUN_0005b150(iVar10,&local_44)" identifier (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;)) (goto_statement "goto LAB_000578e2;" goto statement_identifier ;) })) (labeled_statement "LAB_00057ac5:\n                bVar1 = (byte)*local_44;" statement_identifier : (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (if_statement "if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }" { (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier = (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_40" & identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" else (compound_statement "{\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" identifier = (cast_expression "(ulonglong)(uint)bVar1" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" if (parenthesized_expression "(uVar20 == 0x13)" ( (binary_expression "uVar20 == 0x13" identifier == number_literal) )) (compound_statement "{\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_00057993;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" if (parenthesized_expression "(uVar20 < 0x14)" ( (binary_expression "uVar20 < 0x14" identifier < number_literal) )) (compound_statement "{\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = (ulonglong)uVar7;" (assignment_expression "uVar22 = (ulonglong)uVar7" identifier = (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "uVar5 = local_44[1];" (assignment_expression "uVar5 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar5;" (assignment_expression "uVar11 = uVar5" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" { (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = CONCAT44(uVar11,uVar12);" (assignment_expression "uVar21 = CONCAT44(uVar11,uVar12)" identifier = (call_expression "CONCAT44(uVar11,uVar12)" identifier (argument_list "(uVar11,uVar12)" ( identifier , identifier )))) ;) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000579dc:\n              local_3c = uVar21;" statement_identifier : (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;)) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" identifier = identifier) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }" { (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" { (expression_statement "param_1[8] = uVar20;" (assignment_expression "param_1[8] = uVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) })) }) (else_clause "else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" else (compound_statement "{\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" { (labeled_statement "joined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" statement_identifier : (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto joined_r0x00057934;" goto statement_identifier ;))) }))) }) (else_clause "else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" else (compound_statement "{\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" { (if_statement "if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" if (parenthesized_expression "(uVar20 == 0x19)" ( (binary_expression "uVar20 == 0x19" identifier == number_literal) )) (compound_statement "{\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }" { (expression_statement "local_28._0_4_ = (uint *)0x1;" (assignment_expression "local_28._0_4_ = (uint *)0x1" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" else (compound_statement "{\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" { (if_statement "if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" if (parenthesized_expression "(uVar20 < 0x1a)" ( (binary_expression "uVar20 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" { (if_statement "if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" if (parenthesized_expression "(uVar20 != 0x17)" ( (binary_expression "uVar20 != 0x17" identifier != number_literal) )) (compound_statement "{\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" { (if_statement "if (uVar20 != 0x18) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar20 != 0x18)" ( (binary_expression "uVar20 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00057851;" goto statement_identifier ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x44) != 4)" ( (binary_expression "*(int *)(iVar10 + 0x44) != 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" { (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" identifier = (call_expression "FUN_0005b150(iVar10,&local_44)" identifier (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);" statement_identifier : (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" identifier = (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" { (expression_statement "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;" (assignment_expression "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = (ulonglong)uVar12;" (assignment_expression "uVar21 = (ulonglong)uVar12" identifier = (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (if_statement "if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" if (parenthesized_expression "(uVar20 != 0x20)" ( (binary_expression "uVar20 != 0x20" identifier != number_literal) )) (compound_statement "{\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" { (if_statement "if (uVar20 < 0x20) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar20 < 0x20)" ( (binary_expression "uVar20 < 0x20" identifier < number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }" if (parenthesized_expression "(1 < uVar20 - 0x1f01)" ( (binary_expression "1 < uVar20 - 0x1f01" number_literal < (binary_expression "uVar20 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00057ac5;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_28._0_4_ = (uint *)*local_44;" (assignment_expression "local_28._0_4_ = (uint *)*local_44" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_28._4_4_ = uVar12;" (assignment_expression "local_28._4_4_ = uVar12" (field_expression "local_28._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" { (expression_statement "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;" (assignment_expression "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (field_expression "local_28._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_28 >> 0x18" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_28 & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff0000)" ( (binary_expression "(uint)(uint *)local_28 & 0xff0000" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_28 & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff00)" ( (binary_expression "(uint)(uint *)local_28 & 0xff00" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_28 << 0x18" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal))) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (labeled_statement "joined_r0x00057e18:\n            uVar22 = uVar8;" statement_identifier : (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;)) (if_statement "if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" { (if_statement "if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" if (parenthesized_expression "(uVar20 == 8)" ( (binary_expression "uVar20 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }" { (labeled_statement "LAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;" statement_identifier : (expression_statement "local_28._0_4_ = (uint *)uVar8;" (assignment_expression "local_28._0_4_ = (uint *)uVar8" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "param_1[0xf] = (int)(uint *)local_28;" (assignment_expression "param_1[0xf] = (int)(uint *)local_28" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" else (compound_statement "{\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" { (expression_statement "uVar21 = local_3c;" (assignment_expression "uVar21 = local_3c" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) goto LAB_00057d36;" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00057d36;" goto statement_identifier ;)) }))) })) }))))) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" if (parenthesized_expression "(uVar20 == 7)" ( (binary_expression "uVar20 == 7" identifier == number_literal) )) (compound_statement "{\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c._4_4_ = uVar12;" (assignment_expression "local_3c._4_4_ = uVar12" (field_expression "local_3c._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" { (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" statement_identifier : (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;)) (expression_statement "local_28._4_4_ = local_3c._4_4_;" (assignment_expression "local_28._4_4_ = local_3c._4_4_" (field_expression "local_28._4_4_" identifier . field_identifier) = (field_expression "local_3c._4_4_" identifier . field_identifier)) ;) (expression_statement "local_28._0_4_ = (uint *)local_3c;" (assignment_expression "local_28._0_4_ = (uint *)local_3c" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(uVar20 < 8)" ( (binary_expression "uVar20 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" { (if_statement "if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" if (parenthesized_expression "(uVar20 == 4)" ( (binary_expression "uVar20 == 4" identifier == number_literal) )) (compound_statement "{\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" else (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_20 = *local_44;" (assignment_expression "local_20 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" { (expression_statement "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;" (assignment_expression "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" identifier = (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8" (binary_expression "local_20 >> 0x18" identifier >> number_literal) | (binary_expression "(local_20 & 0xff0000) >> 8" (parenthesized_expression "(local_20 & 0xff0000)" ( (binary_expression "local_20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_20 & 0xff00) << 8" (parenthesized_expression "(local_20 & 0xff00)" ( (binary_expression "local_20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_20 << 0x18" identifier << number_literal))) ;) })) (expression_statement "local_28._0_4_ = local_44 + 1;" (assignment_expression "local_28._0_4_ = local_44 + 1" (field_expression "local_28._0_4_" identifier . field_identifier) = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (labeled_statement "LAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" statement_identifier : (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) }) (else_clause "else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" else (compound_statement "{\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" { (if_statement "if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" if (parenthesized_expression "(4 < uVar20)" ( (binary_expression "4 < uVar20" number_literal < identifier) )) (compound_statement "{\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" { (if_statement "if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" if (parenthesized_expression "(uVar20 != 5)" ( (binary_expression "uVar20 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" { (if_statement "if (uVar20 != 6) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar20 != 6)" ( (binary_expression "uVar20 != 6" identifier != number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" { (expression_statement "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" ( (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00057f30;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_28._0_4_ = (uint *)(uint)uVar7;" (assignment_expression "local_28._0_4_ = (uint *)(uint)uVar7" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uint)uVar7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" if (parenthesized_expression "(uVar20 == 1)" ( (binary_expression "uVar20 == 1" identifier == number_literal) )) (compound_statement "{\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;" if (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 4)" ( (binary_expression "*(int *)(iVar10 + 0x48) != 4" (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000578c9;" goto statement_identifier ;)) (labeled_statement "LAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);" statement_identifier : (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" identifier = (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar20 = *local_44;" (assignment_expression "uVar20 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" { (expression_statement "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;" (assignment_expression "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" identifier = (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = (ulonglong)uVar20;" (assignment_expression "uVar21 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000578e2:\n              local_3c = uVar21;" statement_identifier : (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;)) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) goto joined_r0x00057be3;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto joined_r0x00057be3;" goto statement_identifier ;)) (goto_statement "goto LAB_00057a16;" goto statement_identifier ;) })) (if_statement "if (uVar20 != 3) {\n              return 0;\n            }" if (parenthesized_expression "(uVar20 != 3)" ( (binary_expression "uVar20 != 3" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" else (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_20 = (uint)uVar7;" (assignment_expression "local_20 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) }))) (if_statement "if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" if (parenthesized_expression "((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))" ( (binary_expression "(uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 < 0x32" identifier < number_literal)) ))) )) (compound_statement "{\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" { (labeled_statement "LAB_00057c63:\n            uVar8 = uVar22;" statement_identifier : (expression_statement "uVar8 = uVar22;" (assignment_expression "uVar8 = uVar22" identifier = identifier) ;)) (if_statement "if (uVar2 != 1) goto joined_r0x00057e18;" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x00057e18;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" if (parenthesized_expression "(uVar20 == 10)" ( (binary_expression "uVar20 == 10" identifier == number_literal) )) (compound_statement "{\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" { (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_20 = (uint)(byte)*local_44;" (assignment_expression "local_20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" if (parenthesized_expression "(uVar20 < 0xb)" ( (binary_expression "uVar20 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" { (if_statement "if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" if (parenthesized_expression "(uVar20 != 8)" ( (binary_expression "uVar20 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" { (if_statement "if (uVar20 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar20 != 9)" ( (binary_expression "uVar20 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00057851:\n            uVar12 = (uint)(byte)*local_44;" statement_identifier : (expression_statement "uVar12 = (uint)(byte)*local_44;" (assignment_expression "uVar12 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;)) (expression_statement "local_6c = (byte *)((int)local_44 + 1);" (assignment_expression "local_6c = (byte *)((int)local_44 + 1)" identifier = (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" if (parenthesized_expression "((char)(byte)*local_44 < '\0')" ( (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }" { (expression_statement "uVar12 = FUN_00095970(local_6c,&local_40,uVar12);" (assignment_expression "uVar12 = FUN_00095970(local_6c,&local_40,uVar12)" identifier = (call_expression "FUN_00095970(local_6c,&local_40,uVar12)" identifier (argument_list "(local_6c,&local_40,uVar12)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" identifier = identifier) ;) (expression_statement "local_6c = (byte *)((int)local_44 + local_40);" (assignment_expression "local_6c = (byte *)((int)local_44 + local_40)" identifier = (cast_expression "(byte *)((int)local_44 + local_40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_40)" ( (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" else (compound_statement "{\n              local_40 = 1;\n              local_70 = local_44;\n            }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" identifier = identifier) ;) }))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,local_6c);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,local_6c)" identifier = (call_expression "CONCAT44(local_28._4_4_,local_6c)" identifier (argument_list "(local_28._4_4_,local_6c)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_44 = (uint *)((int)local_70 + uVar12 + local_40);" (assignment_expression "local_44 = (uint *)((int)local_70 + uVar12 + local_40)" identifier = (cast_expression "(uint *)((int)local_70 + uVar12 + local_40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar12 + local_40)" ( (binary_expression "(int)local_70 + uVar12 + local_40" (binary_expression "(int)local_70 + uVar12" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "local_20 = uVar12;" (assignment_expression "local_20 = uVar12" identifier = identifier) ;) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (expression_statement "local_28._0_4_ = local_44;" (assignment_expression "local_28._0_4_ = local_44" (field_expression "local_28._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_40 = strlen((char *)local_44);" (assignment_expression "local_40 = strlen((char *)local_44)" identifier = (call_expression "strlen((char *)local_44)" identifier (argument_list "((char *)local_44)" ( (cast_expression "(char *)local_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)puVar18 + local_40 + 1);" (assignment_expression "local_44 = (uint *)((int)puVar18 + local_40 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + local_40 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + local_40 + 1)" ( (binary_expression "(int)puVar18 + local_40 + 1" (binary_expression "(int)puVar18 + local_40" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" { (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal)) ))) )) (compound_statement "{\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" { (expression_statement "param_1[0x12] = (int)puVar18;" (assignment_expression "param_1[0x12] = (int)puVar18" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;" if (parenthesized_expression "((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))" ( (binary_expression "(uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 != 3" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (goto_statement "goto LAB_00057816;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" if (parenthesized_expression "(uVar20 < 0xd)" ( (binary_expression "uVar20 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" { (expression_statement "uVar22 = (ulonglong)(byte)*local_44;" (assignment_expression "uVar22 = (ulonglong)(byte)*local_44" identifier = (binary_expression "(ulonglong)(byte)*local_44" (call_expression "(ulonglong)(byte)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;" statement_identifier : (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar2) goto LAB_00057d79;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_00057d79;" goto statement_identifier ;)) (goto_statement "goto LAB_00057c63;" goto statement_identifier ;) })) (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (uint)bVar1;" (assignment_expression "uVar12 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }" { (expression_statement "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);" (assignment_expression "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12)" identifier = (call_expression "FUN_00095a30(puVar18,&local_40,uVar12)" identifier (argument_list "(puVar18,&local_40,uVar12)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "puVar18 = (uint *)((int)local_44 + local_40);" (assignment_expression "puVar18 = (uint *)((int)local_44 + local_40)" identifier = (cast_expression "(uint *)((int)local_44 + local_40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_40)" ( (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" else (compound_statement "{\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" { (expression_statement "uVar22 = (ulonglong)uVar12;" (assignment_expression "uVar22 = (ulonglong)uVar12" identifier = (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" { (expression_statement "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);" (assignment_expression "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80)" identifier = (call_expression "CONCAT44(0xffffffff,uVar12 | 0xffffff80)" identifier (argument_list "(0xffffffff,uVar12 | 0xffffff80)" ( number_literal , (binary_expression "uVar12 | 0xffffff80" identifier | number_literal) )))) ;) })) }))) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" { (labeled_statement "LAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" statement_identifier : (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (goto_statement "goto LAB_00057b31;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;" if (parenthesized_expression "(puVar18 == (uint *)param_1[0xd])" ( (binary_expression "puVar18 == (uint *)param_1[0xd]" identifier == (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00057700;" goto statement_identifier ;)) (labeled_statement "LAB_0005759c:\n        *puVar18 = local_30;" statement_identifier : (expression_statement "*puVar18 = local_30;" (assignment_expression "*puVar18 = local_30" (pointer_expression "*puVar18" * identifier) = identifier) ;)) (expression_statement "puVar18[1] = local_2c;" (assignment_expression "puVar18[1] = local_2c" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ulonglong *)(puVar18 + 2) = uVar22;" (assignment_expression "*(ulonglong *)(puVar18 + 2) = uVar22" (pointer_expression "*(ulonglong *)(puVar18 + 2)" * (cast_expression "(ulonglong *)(puVar18 + 2)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18[4] = local_20;" (assignment_expression "puVar18[4] = local_20" (subscript_expression "puVar18[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = (int)(puVar18 + 5);" (assignment_expression "param_1[0xc] = (int)(puVar18 + 5)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)(puVar18 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + 5)" ( (binary_expression "puVar18 + 5" identifier + number_literal) )))) ;) (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" identifier = identifier) ;) }))) (expression_statement "local_74 = local_74 + 8;" (assignment_expression "local_74 = local_74 + 8" identifier = (binary_expression "local_74 + 8" identifier + number_literal)) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(local_74 != iVar15)" ( (binary_expression "local_74 != iVar15" identifier != identifier) )) ;) }))) (if_statement "if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" { comment (expression_statement "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0)" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children",0)" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") , number_literal ))) ;) })) (labeled_statement "LAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;" statement_identifier : (expression_statement "uVar20 = (int)local_44 - iVar14;" (assignment_expression "uVar20 = (int)local_44 - iVar14" identifier = (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;)) (expression_statement "iVar14 = uVar20 + param_1[2];" (assignment_expression "iVar14 = uVar20 + param_1[2]" identifier = (binary_expression "uVar20 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);" (assignment_expression "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" identifier = (binary_expression "((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" (binary_expression "((int)uVar20 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar20 >> 0x1f)" ( (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "param_1[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar20,param_1[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,param_1[2])" identifier (argument_list "(uVar20,param_1[2])" ( identifier , (subscript_expression "param_1[2]" identifier [ number_literal ]) )))))) ;) (if_statement "if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" if (parenthesized_expression "((*(byte *)(iVar13 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 4) & 1)" ( (binary_expression "*(byte *)(iVar13 + 4) & 1" (pointer_expression "*(byte *)(iVar13 + 4)" * (cast_expression "(byte *)(iVar13 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }" { (expression_statement "param_1[8] = iVar14;" (assignment_expression "param_1[8] = iVar14" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = iVar15;" (assignment_expression "param_1[9] = iVar15" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" else (compound_statement "{\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" { (expression_statement "param_1[6] = iVar14;" (assignment_expression "param_1[6] = iVar14" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = iVar15;" (assignment_expression "param_1[7] = iVar15" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */\n\nbool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)\n\n{\n  uchar *puVar1;\n  byte bVar2;\n  void *__src;\n  uint uVar3;\n  int *piVar4;\n  code *pcVar5;\n  Relobj *pRVar6;\n  _func_int_varargs **pp_Var7;\n  _func_int_varargs *p_Var8;\n  void *pvVar9;\n  ushort uVar10;\n  char cVar11;\n  int *in_EAX;\n  iterator __position;\n  Dwarf_info_reader *pDVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  size_t __n;\n  void *__dest;\n  uint uVar17;\n  int iVar18;\n  anon_union_4_3_97895b06_for_aux aVar19;\n  int iVar20;\n  undefined4 uVar21;\n  void *pvVar22;\n  uint *puVar23;\n  int iVar24;\n  uchar *puVar25;\n  uint uVar26;\n  ulonglong uVar27;\n  uint64_t uVar28;\n  int local_74;\n  uchar *local_70;\n  uchar *local_6c;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  \n  iVar18 = in_EAX[10];\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n  iVar20 = (int)pDVar12->cu_offset_;\n  puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20;\n  if (pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);\n    return false;\n  }\n  if (puVar1 == (uchar *)0x0) {\n    return false;\n  }\n  pattr = puVar1 + in_EAX[4];\n  iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8);\n  uVar26 = iVar20 >> 3;\n  if (0xccccccc < uVar26) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\n  __src = (void *)in_EAX[0xb];\n  if ((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26) {\n    pvVar9 = (void *)in_EAX[0xc];\n    __n = (int)pvVar9 - (int)__src;\n    if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }\n    if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }\n    in_EAX[0xb] = (int)__dest;\n    in_EAX[0xc] = __n + (int)__dest;\n    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);\n    iVar18 = in_EAX[10];\n    if (uVar26 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\nLAB_000575e3:\n  uVar26 = (int)pattr - (int)puVar1;\n  iVar20 = uVar26 + in_EAX[2];\n  iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2]);\n  if ((*(byte *)(iVar18 + 4) & 1) == 0) {\n    in_EAX[8] = iVar20;\n    in_EAX[9] = iVar24;\n  }\n  else {\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }\n  *(undefined1 *)(in_EAX + 0xe) = 1;\n  return true;\n}\n\n" comment comment (function_definition "bool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)\n\n{\n  uchar *puVar1;\n  byte bVar2;\n  void *__src;\n  uint uVar3;\n  int *piVar4;\n  code *pcVar5;\n  Relobj *pRVar6;\n  _func_int_varargs **pp_Var7;\n  _func_int_varargs *p_Var8;\n  void *pvVar9;\n  ushort uVar10;\n  char cVar11;\n  int *in_EAX;\n  iterator __position;\n  Dwarf_info_reader *pDVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  size_t __n;\n  void *__dest;\n  uint uVar17;\n  int iVar18;\n  anon_union_4_3_97895b06_for_aux aVar19;\n  int iVar20;\n  undefined4 uVar21;\n  void *pvVar22;\n  uint *puVar23;\n  int iVar24;\n  uchar *puVar25;\n  uint uVar26;\n  ulonglong uVar27;\n  uint64_t uVar28;\n  int local_74;\n  uchar *local_70;\n  uchar *local_6c;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  \n  iVar18 = in_EAX[10];\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n  iVar20 = (int)pDVar12->cu_offset_;\n  puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20;\n  if (pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);\n    return false;\n  }\n  if (puVar1 == (uchar *)0x0) {\n    return false;\n  }\n  pattr = puVar1 + in_EAX[4];\n  iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8);\n  uVar26 = iVar20 >> 3;\n  if (0xccccccc < uVar26) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\n  __src = (void *)in_EAX[0xb];\n  if ((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26) {\n    pvVar9 = (void *)in_EAX[0xc];\n    __n = (int)pvVar9 - (int)__src;\n    if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }\n    if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }\n    in_EAX[0xb] = (int)__dest;\n    in_EAX[0xc] = __n + (int)__dest;\n    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);\n    iVar18 = in_EAX[10];\n    if (uVar26 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\nLAB_000575e3:\n  uVar26 = (int)pattr - (int)puVar1;\n  iVar20 = uVar26 + in_EAX[2];\n  iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2]);\n  if ((*(byte *)(iVar18 + 4) & 1) == 0) {\n    in_EAX[8] = iVar20;\n    in_EAX[9] = iVar24;\n  }\n  else {\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }\n  *(undefined1 *)(in_EAX + 0xe) = 1;\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_die::" identifier : : identifier : :) (function_declarator "read_attributes(Dwarf_die *this)" identifier (parameter_list "(Dwarf_die *this)" ( (parameter_declaration "Dwarf_die *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  uchar *puVar1;\n  byte bVar2;\n  void *__src;\n  uint uVar3;\n  int *piVar4;\n  code *pcVar5;\n  Relobj *pRVar6;\n  _func_int_varargs **pp_Var7;\n  _func_int_varargs *p_Var8;\n  void *pvVar9;\n  ushort uVar10;\n  char cVar11;\n  int *in_EAX;\n  iterator __position;\n  Dwarf_info_reader *pDVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  size_t __n;\n  void *__dest;\n  uint uVar17;\n  int iVar18;\n  anon_union_4_3_97895b06_for_aux aVar19;\n  int iVar20;\n  undefined4 uVar21;\n  void *pvVar22;\n  uint *puVar23;\n  int iVar24;\n  uchar *puVar25;\n  uint uVar26;\n  ulonglong uVar27;\n  uint64_t uVar28;\n  int local_74;\n  uchar *local_70;\n  uchar *local_6c;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  \n  iVar18 = in_EAX[10];\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n  iVar20 = (int)pDVar12->cu_offset_;\n  puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20;\n  if (pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);\n    return false;\n  }\n  if (puVar1 == (uchar *)0x0) {\n    return false;\n  }\n  pattr = puVar1 + in_EAX[4];\n  iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8);\n  uVar26 = iVar20 >> 3;\n  if (0xccccccc < uVar26) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\n  __src = (void *)in_EAX[0xb];\n  if ((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26) {\n    pvVar9 = (void *)in_EAX[0xc];\n    __n = (int)pvVar9 - (int)__src;\n    if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }\n    if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }\n    in_EAX[0xb] = (int)__dest;\n    in_EAX[0xc] = __n + (int)__dest;\n    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);\n    iVar18 = in_EAX[10];\n    if (uVar26 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\nLAB_000575e3:\n  uVar26 = (int)pattr - (int)puVar1;\n  iVar20 = uVar26 + in_EAX[2];\n  iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2]);\n  if ((*(byte *)(iVar18 + 4) & 1) == 0) {\n    in_EAX[8] = iVar20;\n    in_EAX[9] = iVar24;\n  }\n  else {\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }\n  *(undefined1 *)(in_EAX + 0xe) = 1;\n  return true;\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "Relobj *pRVar6;" type_identifier (pointer_declarator "*pRVar6" * identifier) ;) (declaration "_func_int_varargs **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "_func_int_varargs *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "ushort uVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int *in_EAX;" primitive_type (pointer_declarator "*in_EAX" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Dwarf_info_reader *pDVar12;" type_identifier (pointer_declarator "*pDVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "anon_union_4_3_97895b06_for_aux aVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "void *pvVar22;" primitive_type (pointer_declarator "*pvVar22" * identifier) ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uchar *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "ulonglong uVar27;" type_identifier identifier ;) (declaration "uint64_t uVar28;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "uchar *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uchar *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uchar *pattr;" type_identifier (pointer_declarator "*pattr" * identifier) ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "off_t str_off;" type_identifier identifier ;) (declaration "Attribute_value attr_value;" type_identifier identifier ;) (expression_statement "iVar18 = in_EAX[10];" (assignment_expression "iVar18 = in_EAX[10]" identifier = (subscript_expression "in_EAX[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") ))) ;) })) (expression_statement "pDVar12 = (Dwarf_info_reader *)*in_EAX;" (assignment_expression "pDVar12 = (Dwarf_info_reader *)*in_EAX" identifier = (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier))) ;) (expression_statement "iVar20 = (int)pDVar12->cu_offset_;" (assignment_expression "iVar20 = (int)pDVar12->cu_offset_" identifier = (cast_expression "(int)pDVar12->cu_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pDVar12->cu_offset_" identifier -> field_identifier))) ;) (expression_statement "puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20;" (assignment_expression "puVar1 = pDVar12->buffer_ + in_EAX[2] + iVar20" identifier = (binary_expression "pDVar12->buffer_ + in_EAX[2] + iVar20" (binary_expression "pDVar12->buffer_ + in_EAX[2]" (field_expression "pDVar12->buffer_" identifier -> field_identifier) + (subscript_expression "in_EAX[2]" identifier [ number_literal ])) + identifier)) ;) (if_statement "if (pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);\n    return false;\n  }" if (parenthesized_expression "(pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1)" ( (binary_expression "pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_ < puVar1 + 1" (binary_expression "pDVar12->buffer_ + iVar20 + (int)pDVar12->cu_length_" (binary_expression "pDVar12->buffer_ + iVar20" (field_expression "pDVar12->buffer_" identifier -> field_identifier) + identifier) + (cast_expression "(int)pDVar12->cu_length_" ( (type_descriptor "int" primitive_type) ) (field_expression "pDVar12->cu_length_" identifier -> field_identifier))) < (binary_expression "puVar1 + 1" identifier + number_literal)) )) (compound_statement "{\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);\n    return false;\n  }" { (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(pDVar12);" statement_identifier : (ERROR ":" :) (expression_statement "warn_corrupt_debug_section(pDVar12);" (call_expression "warn_corrupt_debug_section(pDVar12)" identifier (argument_list "(pDVar12)" ( identifier ))) ;)) (return_statement "return false;" return false ;) })) (if_statement "if (puVar1 == (uchar *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(puVar1 == (uchar *)0x0)" ( (binary_expression "puVar1 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pattr = puVar1 + in_EAX[4];" (assignment_expression "pattr = puVar1 + in_EAX[4]" identifier = (binary_expression "puVar1 + in_EAX[4]" identifier + (subscript_expression "in_EAX[4]" identifier [ number_literal ]))) ;) (expression_statement "iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8);" (assignment_expression "iVar20 = *(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8)" identifier = (binary_expression "*(int *)(iVar18 + 0xc) - *(int *)(iVar18 + 8)" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar26 = iVar20 >> 3;" (assignment_expression "uVar26 = iVar20 >> 3" identifier = (binary_expression "iVar20 >> 3" identifier >> number_literal)) ;) (if_statement "if (0xccccccc < uVar26) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }" if (parenthesized_expression "(0xccccccc < uVar26)" ( (binary_expression "0xccccccc < uVar26" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }" { comment (labeled_statement "std::__throw_length_error("vector::reserve");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("vector::reserve");" (call_expression "__throw_length_error("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;)) })) (expression_statement "__src = (void *)in_EAX[0xb];" (assignment_expression "__src = (void *)in_EAX[0xb]" identifier = (cast_expression "(void *)in_EAX[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xb]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26) {\n    pvVar9 = (void *)in_EAX[0xc];\n    __n = (int)pvVar9 - (int)__src;\n    if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }\n    if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }\n    in_EAX[0xb] = (int)__dest;\n    in_EAX[0xc] = __n + (int)__dest;\n    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);\n    iVar18 = in_EAX[10];\n    if (uVar26 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }" if (parenthesized_expression "((uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26)" ( (binary_expression "(uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333) < uVar26" (call_expression "(uint)((in_EAX[0xd] - (int)__src >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((in_EAX[0xd] - (int)__src >> 2) * -0x33333333)" ( (binary_expression "(in_EAX[0xd] - (int)__src >> 2) * -0x33333333" (parenthesized_expression "(in_EAX[0xd] - (int)__src >> 2)" ( (binary_expression "in_EAX[0xd] - (int)__src >> 2" (binary_expression "in_EAX[0xd] - (int)__src" (subscript_expression "in_EAX[0xd]" identifier [ number_literal ]) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pvVar9 = (void *)in_EAX[0xc];\n    __n = (int)pvVar9 - (int)__src;\n    if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }\n    if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }\n    in_EAX[0xb] = (int)__dest;\n    in_EAX[0xc] = __n + (int)__dest;\n    in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);\n    iVar18 = in_EAX[10];\n    if (uVar26 != 0) goto LAB_00057480;\n  }" { (expression_statement "pvVar9 = (void *)in_EAX[0xc];" (assignment_expression "pvVar9 = (void *)in_EAX[0xc]" identifier = (cast_expression "(void *)in_EAX[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xc]" identifier [ number_literal ]))) ;) (expression_statement "__n = (int)pvVar9 - (int)__src;" (assignment_expression "__n = (int)pvVar9 - (int)__src" identifier = (binary_expression "(int)pvVar9 - (int)__src" (cast_expression "(int)pvVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar26 == 0) {\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }\n    else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar22 = __src;\n    }" { (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar22 = __src;" (assignment_expression "pvVar22 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }" else (compound_statement "{\n      __dest = operator_new(uVar26 * 0x14);\n      pvVar22 = (void *)in_EAX[0xb];\n    }" { (expression_statement "__dest = operator_new(uVar26 * 0x14);" (assignment_expression "__dest = operator_new(uVar26 * 0x14)" identifier = (call_expression "operator_new(uVar26 * 0x14)" identifier (argument_list "(uVar26 * 0x14)" ( (binary_expression "uVar26 * 0x14" identifier * number_literal) )))) ;) (expression_statement "pvVar22 = (void *)in_EAX[0xb];" (assignment_expression "pvVar22 = (void *)in_EAX[0xb]" identifier = (cast_expression "(void *)in_EAX[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xb]" identifier [ number_literal ]))) ;) }))) (if_statement "if (__src != pvVar9) {\n      memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pvVar9)" ( (binary_expression "__src != pvVar9" identifier != identifier) )) (compound_statement "{\n      memmove(__dest,__src,__n);\n    }" { (expression_statement "memmove(__dest,__src,__n);" (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (pvVar22 != (void *)0x0) {\n      operator_delete(pvVar22);\n    }" if (parenthesized_expression "(pvVar22 != (void *)0x0)" ( (binary_expression "pvVar22 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete(pvVar22);\n    }" { (expression_statement "operator_delete(pvVar22);" (call_expression "operator_delete(pvVar22)" identifier (argument_list "(pvVar22)" ( identifier ))) ;) })) (expression_statement "in_EAX[0xb] = (int)__dest;" (assignment_expression "in_EAX[0xb] = (int)__dest" (subscript_expression "in_EAX[0xb]" identifier [ number_literal ]) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_EAX[0xc] = __n + (int)__dest;" (assignment_expression "in_EAX[0xc] = __n + (int)__dest" (subscript_expression "in_EAX[0xc]" identifier [ number_literal ]) = (binary_expression "__n + (int)__dest" identifier + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest);" (assignment_expression "in_EAX[0xd] = (int)(uVar26 * 0x14 + (int)__dest)" (subscript_expression "in_EAX[0xd]" identifier [ number_literal ]) = (cast_expression "(int)(uVar26 * 0x14 + (int)__dest)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar26 * 0x14 + (int)__dest)" ( (binary_expression "uVar26 * 0x14 + (int)__dest" (binary_expression "uVar26 * 0x14" identifier * number_literal) + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar18 = in_EAX[10];" (assignment_expression "iVar18 = in_EAX[10]" identifier = (subscript_expression "in_EAX[10]" identifier [ number_literal ])) ;) (if_statement "if (uVar26 != 0) goto LAB_00057480;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00057480;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }" else (compound_statement "{\n    if (uVar26 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);\n  }" { (if_statement "if (uVar26 == 0) goto LAB_000575e3;" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000575e3;" goto statement_identifier ;)) (labeled_statement "LAB_00057480:\n    local_74 = 0;" statement_identifier : (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    } while (local_74 != iVar20);" do (compound_statement "{\n      puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));\n      uVar26 = puVar23[1];\n      uVar3 = *puVar23;\n      if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }\n      puVar25 = pattr;\n      uVar17 = (int)pattr - (int)puVar1;\n      iVar18 = uVar17 + in_EAX[2];\n      iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar3;\n      attr_value.form = uVar26;\n      if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }\n      local_74 = local_74 + 8;\n      iVar18 = in_EAX[10];\n    }" { (expression_statement "puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8));" (assignment_expression "puVar23 = (uint *)(local_74 + *(int *)(iVar18 + 8))" identifier = (cast_expression "(uint *)(local_74 + *(int *)(iVar18 + 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + *(int *)(iVar18 + 8))" ( (binary_expression "local_74 + *(int *)(iVar18 + 8)" identifier + (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar26 = puVar23[1];" (assignment_expression "uVar26 = puVar23[1]" identifier = (subscript_expression "puVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *puVar23;" (assignment_expression "uVar3 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (if_statement "if (uVar26 == 0x16) {\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }" if (parenthesized_expression "(uVar26 == 0x16)" ( (binary_expression "uVar26 == 0x16" identifier == number_literal) )) (compound_statement "{\n        bVar2 = *pattr;\n        uVar27 = (ulonglong)bVar2;\n        local_70 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }\n        uVar26 = (uint)uVar27;\n        pattr = local_70;\n      }" { (expression_statement "bVar2 = *pattr;" (assignment_expression "bVar2 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "uVar27 = (ulonglong)bVar2;" (assignment_expression "uVar27 = (ulonglong)bVar2" identifier = (cast_expression "(ulonglong)bVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_70 = pattr + 1;" (assignment_expression "local_70 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar2 < '\0') {\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }\n        else {\n          len = 1;\n        }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);\n          local_70 = pattr + len;\n        }" { (expression_statement "uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2);" (assignment_expression "uVar27 = read_unsigned_LEB_128_x(local_70,&len,bVar2)" identifier = (call_expression "read_unsigned_LEB_128_x(local_70,&len,bVar2)" identifier (argument_list "(local_70,&len,bVar2)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "local_70 = pattr + len;" (assignment_expression "local_70 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n          len = 1;\n        }" else (compound_statement "{\n          len = 1;\n        }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) }))) (expression_statement "uVar26 = (uint)uVar27;" (assignment_expression "uVar26 = (uint)uVar27" identifier = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pattr = local_70;" (assignment_expression "pattr = local_70" identifier = identifier) ;) })) (expression_statement "puVar25 = pattr;" (assignment_expression "puVar25 = pattr" identifier = identifier) ;) (expression_statement "uVar17 = (int)pattr - (int)puVar1;" (assignment_expression "uVar17 = (int)pattr - (int)puVar1" identifier = (binary_expression "(int)pattr - (int)puVar1" (cast_expression "(int)pattr" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar18 = uVar17 + in_EAX[2];" (assignment_expression "iVar18 = uVar17 + in_EAX[2]" identifier = (binary_expression "uVar17 + in_EAX[2]" identifier + (subscript_expression "in_EAX[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2]);" (assignment_expression "iVar24 = ((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2])" identifier = (binary_expression "((int)uVar17 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar17,in_EAX[2])" (binary_expression "((int)uVar17 >> 0x1f) + in_EAX[3]" (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "in_EAX[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar17,in_EAX[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,in_EAX[2])" identifier (argument_list "(uVar17,in_EAX[2])" ( identifier , (subscript_expression "in_EAX[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "attr_value.aux.shndx = 0;" (assignment_expression "attr_value.aux.shndx = 0" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.attr = uVar3;" (assignment_expression "attr_value.attr = uVar3" (field_expression "attr_value.attr" identifier . field_identifier) = identifier) ;) (expression_statement "attr_value.form = uVar26;" (assignment_expression "attr_value.form = uVar26" (field_expression "attr_value.form" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar26 == 0xe) {\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }\n      else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }" if (parenthesized_expression "(uVar26 == 0xe)" ( (binary_expression "uVar26 == 0xe" identifier == number_literal) )) (compound_statement "{\n        piVar4 = *(int **)(*in_EAX + 8);\n        iVar15 = *piVar4;\n        pcVar5 = *(code **)(iVar15 + 0xc);\n        if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;\n        (__position._M_current)->form = attr_value.form;\n        ((__position._M_current)->val).stringval = attr_value.val.stringval;\n        *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n        (__position._M_current)->aux = attr_value.aux;\n        in_EAX[0xc] = (int)(__position._M_current + 1);\n      }" { (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = *piVar4;" (assignment_expression "iVar15 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar5 = *(code **)(iVar15 + 0xc);" (assignment_expression "pcVar5 = *(code **)(iVar15 + 0xc)" identifier = (pointer_expression "*(code **)(iVar15 + 0xc)" * (cast_expression "(code **)(iVar15 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*in_EAX + 0x44) == 4) {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }\n        else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }" if (parenthesized_expression "(*(int *)(*in_EAX + 0x44) == 4)" ( (binary_expression "*(int *)(*in_EAX + 0x44) == 4" (pointer_expression "*(int *)(*in_EAX + 0x44)" * (cast_expression "(int *)(*in_EAX + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*in_EAX + 0x44)" ( (binary_expression "*in_EAX + 0x44" (pointer_expression "*in_EAX" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }\n          pattr = pattr + 4;\n          str_off = (off_t)uVar26;\n        }" { (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }" { (expression_statement "cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(iVar15 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(iVar15 + 0xe8))" ( (pointer_expression "**(code **)(iVar15 + 0xe8)" * (pointer_expression "*(code **)(iVar15 + 0xe8)" * (cast_expression "(code **)(iVar15 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xe8)" ( (binary_expression "iVar15 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" else (compound_statement "{\n            cVar11 = (*pcVar5)(piVar4);\n          }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar26 = *(uint *)pattr;" (assignment_expression "uVar26 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n          }" { (expression_statement "uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;" (assignment_expression "uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18" identifier = (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8" (binary_expression "uVar26 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar26 & 0xff0000) >> 8" (parenthesized_expression "(uVar26 & 0xff0000)" ( (binary_expression "uVar26 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar26 & 0xff00) << 8" (parenthesized_expression "(uVar26 & 0xff00)" ( (binary_expression "uVar26 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar26 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "str_off = (off_t)uVar26;" (assignment_expression "str_off = (off_t)uVar26" identifier = (cast_expression "(off_t)uVar26" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }" else (compound_statement "{\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar26 = *(uint *)pattr;\n          uVar17 = *(uint *)(pattr + 4);\n          uVar14 = uVar17;\n          if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar14,uVar26);\n        }" { (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n            cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);\n          }" { (expression_statement "cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(iVar15 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(iVar15 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(iVar15 + 0xe8))" ( (pointer_expression "**(code **)(iVar15 + 0xe8)" * (pointer_expression "*(code **)(iVar15 + 0xe8)" * (cast_expression "(code **)(iVar15 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xe8)" ( (binary_expression "iVar15 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" else (compound_statement "{\n            cVar11 = (*pcVar5)(piVar4);\n          }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar26 = *(uint *)pattr;" (assignment_expression "uVar26 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar17 = *(uint *)(pattr + 4);" (assignment_expression "uVar17 = *(uint *)(pattr + 4)" identifier = (pointer_expression "*(uint *)(pattr + 4)" * (cast_expression "(uint *)(pattr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar17;" (assignment_expression "uVar14 = uVar17" identifier = identifier) ;) (if_statement "if (cVar11 != '\0') {\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;\n            uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n          }" { (expression_statement "uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18;" (assignment_expression "uVar14 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18" identifier = (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                     uVar26 << 0x18" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8" (binary_expression "uVar26 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar26 & 0xff0000) >> 8" (parenthesized_expression "(uVar26 & 0xff0000)" ( (binary_expression "uVar26 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar26 & 0xff00) << 8" (parenthesized_expression "(uVar26 & 0xff00)" ( (binary_expression "uVar26 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar26 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;" (assignment_expression "uVar26 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18" identifier = (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (expression_statement "str_off = CONCAT44(uVar14,uVar26);" (assignment_expression "str_off = CONCAT44(uVar14,uVar26)" identifier = (call_expression "CONCAT44(uVar14,uVar26)" identifier (argument_list "(uVar14,uVar26)" ( identifier , identifier )))) ;) }))) (ERROR "attr_value.aux.shndx =\n             Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n             Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" (call_expression "lookup_reloc\n                       ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" identifier (argument_list "((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" ( (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (call_expression "CONCAT44(iVar24,iVar18)" identifier (argument_list "(iVar24,iVar18)" ( identifier , identifier ))) , (pointer_expression "&str_off" & identifier) ))) ;) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar3 != 0x31) {\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }" if (parenthesized_expression "(uVar3 != 0x31)" ( (binary_expression "uVar3 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }\n        }" { (if_statement "if (uVar3 < 0x32) {\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }\n          else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }" if (parenthesized_expression "(uVar3 < 0x32)" ( (binary_expression "uVar3 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }\n          }" { (if_statement "if ((uVar3 != 1) && (uVar3 == 3)) {\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }" if (parenthesized_expression "((uVar3 != 1) && (uVar3 == 3))" ( (binary_expression "(uVar3 != 1) && (uVar3 == 3)" (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x11] = attr_value.val.intval._4_4_;\n              in_EAX[0x10] = (int)attr_value.val.stringval;\n            }" { (labeled_statement "LAB_00057d36:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;" statement_identifier : (expression_statement "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;" (assignment_expression "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux" (pointer_expression "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15)" * (cast_expression "(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15)" ( (type_descriptor "anon_union_4_3_97895b06_for_aux *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX + 0x15)" ( (binary_expression "in_EAX + 0x15" identifier + number_literal) )))) = (field_expression "attr_value.aux" identifier . field_identifier)) ;)) (expression_statement "in_EAX[0x11] = attr_value.val.intval._4_4_;" (assignment_expression "in_EAX[0x11] = attr_value.val.intval._4_4_" (subscript_expression "in_EAX[0x11]" identifier [ number_literal ]) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "in_EAX[0x10] = (int)attr_value.val.stringval;" (assignment_expression "in_EAX[0x10] = (int)attr_value.val.stringval" (subscript_expression "in_EAX[0x10]" identifier [ number_literal ]) = (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier))) ;) })) }) (else_clause "else {\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }" else (compound_statement "{\n            uVar13 = (char *)str_off;\n            uVar21 = str_off._4_4_;\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }\n          }" { (expression_statement "uVar13 = (char *)str_off;" (assignment_expression "uVar13 = (char *)str_off" identifier = (cast_expression "(char *)str_off" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar21 = str_off._4_4_;" (assignment_expression "uVar21 = str_off._4_4_" identifier = (field_expression "str_off._4_4_" identifier . field_identifier)) ;) (if_statement "if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }" if (parenthesized_expression "((uVar3 == 0x6e) || (uVar3 == 0x2007))" ( (binary_expression "(uVar3 == 0x6e) || (uVar3 == 0x2007)" (parenthesized_expression "(uVar3 == 0x6e)" ( (binary_expression "uVar3 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar3 == 0x2007)" ( (binary_expression "uVar3 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;\n              in_EAX[0x13] = (int)uVar13;\n              in_EAX[0x14] = uVar21;\n            }" { (labeled_statement "LAB_00057b8d:\n              *(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;" statement_identifier : (expression_statement "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux;" (assignment_expression "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15) = attr_value.aux" (pointer_expression "*(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15)" * (cast_expression "(anon_union_4_3_97895b06_for_aux *)(in_EAX + 0x15)" ( (type_descriptor "anon_union_4_3_97895b06_for_aux *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX + 0x15)" ( (binary_expression "in_EAX + 0x15" identifier + number_literal) )))) = (field_expression "attr_value.aux" identifier . field_identifier)) ;)) (expression_statement "in_EAX[0x13] = (int)uVar13;" (assignment_expression "in_EAX[0x13] = (int)uVar13" (subscript_expression "in_EAX[0x13]" identifier [ number_literal ]) = (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_EAX[0x14] = uVar21;" (assignment_expression "in_EAX[0x14] = uVar21" (subscript_expression "in_EAX[0x14]" identifier [ number_literal ]) = identifier) ;) })) }))) })) (labeled_statement "LAB_00057590:\n        __position._M_current = (Attribute_value *)in_EAX[0xc];" statement_identifier : (expression_statement "__position._M_current = (Attribute_value *)in_EAX[0xc];" (assignment_expression "__position._M_current = (Attribute_value *)in_EAX[0xc]" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Attribute_value *)in_EAX[0xc]" ( (type_descriptor "Attribute_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xc]" identifier [ number_literal ]))) ;)) (if_statement "if (__position._M_current == (Attribute_value *)in_EAX[0xd]) goto LAB_00057700;" if (parenthesized_expression "(__position._M_current == (Attribute_value *)in_EAX[0xd])" ( (binary_expression "__position._M_current == (Attribute_value *)in_EAX[0xd]" (field_expression "__position._M_current" identifier . field_identifier) == (cast_expression "(Attribute_value *)in_EAX[0xd]" ( (type_descriptor "Attribute_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00057700;" goto statement_identifier ;)) (labeled_statement "LAB_0005759c:\n        (__position._M_current)->attr = attr_value.attr;" statement_identifier : (expression_statement "(__position._M_current)->attr = attr_value.attr;" (assignment_expression "(__position._M_current)->attr = attr_value.attr" (field_expression "(__position._M_current)->attr" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.attr" identifier . field_identifier)) ;)) (expression_statement "(__position._M_current)->form = attr_value.form;" (assignment_expression "(__position._M_current)->form = attr_value.form" (field_expression "(__position._M_current)->form" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.form" identifier . field_identifier)) ;) (expression_statement "((__position._M_current)->val).stringval = attr_value.val.stringval;" (assignment_expression "((__position._M_current)->val).stringval = attr_value.val.stringval" (field_expression "((__position._M_current)->val).stringval" (parenthesized_expression "((__position._M_current)->val)" ( (field_expression "(__position._M_current)->val" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->val + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->val + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->val + 4)" ( (binary_expression "(int)&(__position._M_current)->val + 4" (cast_expression "(int)&(__position._M_current)->val" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->val" & (field_expression "(__position._M_current)->val" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(__position._M_current)->aux = attr_value.aux;" (assignment_expression "(__position._M_current)->aux = attr_value.aux" (field_expression "(__position._M_current)->aux" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.aux" identifier . field_identifier)) ;) (expression_statement "in_EAX[0xc] = (int)(__position._M_current + 1);" (assignment_expression "in_EAX[0xc] = (int)(__position._M_current + 1)" (subscript_expression "in_EAX[0xc]" identifier [ number_literal ]) = (cast_expression "(int)(__position._M_current + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(__position._M_current + 1)" ( (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal) )))) ;) }) (else_clause "else {\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }" else (compound_statement "{\n        if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }\n        if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }\n        if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar2 = *pattr;\n        puVar25 = pattr + 1;\n        if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }\n        pattr = puVar25;\n        if (uVar3 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        __position._M_current = (Attribute_value *)in_EAX[0xc];\n        if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);\n      }" { (if_statement "if (0xe < uVar26) {\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(0xe < uVar26)" ( (binary_expression "0xe < uVar26" number_literal < identifier) )) (compound_statement "{\n          if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }\n          goto LAB_00057590;\n        }" { (if_statement "if (uVar26 == 0x15) {\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }\n          else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }" if (parenthesized_expression "(uVar26 == 0x15)" ( (binary_expression "uVar26 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar2 = *pattr;\n            if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }\njoined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }\n          }" { (expression_statement "bVar2 = *pattr;" (assignment_expression "bVar2 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (if_statement "if ((char)bVar2 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n              pattr = pattr + len;\n            }" { (expression_statement "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);" (assignment_expression "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2)" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_unsigned_LEB_128_x(pattr + 1,&len,bVar2)" identifier (argument_list "(pattr + 1,&len,bVar2)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }" else (compound_statement "{\n              len = 1;\n              attr_value.val.intval._1_7_ = 0;\n              attr_value.val.uintval._0_1_ = bVar2;\n              pattr = pattr + 1;\n            }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = bVar2;" (assignment_expression "attr_value.val.uintval._0_1_ = bVar2" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) }))) (labeled_statement "joined_r0x00057a0a:\n            if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" statement_identifier : (if_statement "if (uVar3 == 0x31) {\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }\n            else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;\n              in_EAX[0x19] = attr_value.val.intval._4_4_;\n            }" { (labeled_statement "LAB_000577b8:\n              in_EAX[0x18] = (int)attr_value.val.stringval;" statement_identifier : (expression_statement "in_EAX[0x18] = (int)attr_value.val.stringval;" (assignment_expression "in_EAX[0x18] = (int)attr_value.val.stringval" (subscript_expression "in_EAX[0x18]" identifier [ number_literal ]) = (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier))) ;)) (expression_statement "in_EAX[0x19] = attr_value.val.intval._4_4_;" (assignment_expression "in_EAX[0x19] = attr_value.val.intval._4_4_" (subscript_expression "in_EAX[0x19]" identifier [ number_literal ]) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" else (if_statement "if (uVar3 < 0x32) {\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }\n            else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" if (parenthesized_expression "(uVar3 < 0x32)" ( (binary_expression "uVar3 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }\n            }" { (labeled_statement "LAB_00057a16:\n              if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }" statement_identifier : (if_statement "if ((uVar3 == 1) && (attr_value.aux.shndx == 0)) {\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }" if (parenthesized_expression "((uVar3 == 1) && (attr_value.aux.shndx == 0))" ( (binary_expression "(uVar3 == 1) && (attr_value.aux.shndx == 0)" (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) && (parenthesized_expression "(attr_value.aux.shndx == 0)" ( (binary_expression "attr_value.aux.shndx == 0" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\n                in_EAX[8] = (int)attr_value.val.stringval;\n                in_EAX[9] = attr_value.val.intval._4_4_;\n              }" { (expression_statement "in_EAX[8] = (int)attr_value.val.stringval;" (assignment_expression "in_EAX[8] = (int)attr_value.val.stringval" (subscript_expression "in_EAX[8]" identifier [ number_literal ]) = (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier))) ;) (expression_statement "in_EAX[9] = attr_value.val.intval._4_4_;" (assignment_expression "in_EAX[9] = attr_value.val.intval._4_4_" (subscript_expression "in_EAX[9]" identifier [ number_literal ]) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }))) }) (else_clause "else if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" else (if_statement "if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }\n            else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" if (parenthesized_expression "((uVar3 == 0x6e) || (uVar3 == 0x2007))" ( (binary_expression "(uVar3 == 0x6e) || (uVar3 == 0x2007)" (parenthesized_expression "(uVar3 == 0x6e)" ( (binary_expression "uVar3 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar3 == 0x2007)" ( (binary_expression "uVar3 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }\n            }" { (labeled_statement "LAB_00057b31:\n              if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }" statement_identifier : (if_statement "if (uVar26 == 8) {\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                in_EAX[0x12] = (int)attr_value.val.stringval;\n              }" { (expression_statement "in_EAX[0x12] = (int)attr_value.val.stringval;" (assignment_expression "in_EAX[0x12] = (int)attr_value.val.stringval" (subscript_expression "in_EAX[0x12]" identifier [ number_literal ]) = (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }" else (if_statement "if (uVar26 == 0xe) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }" if (parenthesized_expression "(uVar26 == 0xe)" ( (binary_expression "uVar26 == 0xe" identifier == number_literal) )) (compound_statement "{\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\n                goto LAB_00057b8d;\n              }" { (expression_statement "uVar13 = attr_value.val.stringval;" (assignment_expression "uVar13 = attr_value.val.stringval" identifier = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar21 = attr_value.val.intval._4_4_;" (assignment_expression "uVar21 = attr_value.val.intval._4_4_" identifier = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_00057b8d;" goto statement_identifier ;) }))))) }) (else_clause "else {\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" else (compound_statement "{\nLAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }\n            }" { (labeled_statement "LAB_00057931:\n              if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }" statement_identifier : (if_statement "if (uVar3 == 0x47) {\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }" if (parenthesized_expression "(uVar3 == 0x47)" ( (binary_expression "uVar3 == 0x47" identifier == number_literal) )) (compound_statement "{\n                uVar13 = attr_value.val.stringval;\n                uVar21 = attr_value.val.intval._4_4_;\nLAB_00057942:\n                in_EAX[0x16] = (int)uVar13;\n                in_EAX[0x17] = uVar21;\n              }" { (expression_statement "uVar13 = attr_value.val.stringval;" (assignment_expression "uVar13 = attr_value.val.stringval" identifier = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar21 = attr_value.val.intval._4_4_;" (assignment_expression "uVar21 = attr_value.val.intval._4_4_" identifier = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (labeled_statement "LAB_00057942:\n                in_EAX[0x16] = (int)uVar13;" statement_identifier : (expression_statement "in_EAX[0x16] = (int)uVar13;" (assignment_expression "in_EAX[0x16] = (int)uVar13" (subscript_expression "in_EAX[0x16]" identifier [ number_literal ]) = (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "in_EAX[0x17] = uVar21;" (assignment_expression "in_EAX[0x17] = uVar21" (subscript_expression "in_EAX[0x17]" identifier [ number_literal ]) = identifier) ;) }))) })))))))) }) (else_clause "else if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }" else (if_statement "if (uVar26 < 0x16) {\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }\n          else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }" if (parenthesized_expression "(uVar26 < 0x16)" ( (binary_expression "uVar26 < 0x16" identifier < number_literal) )) (compound_statement "{\n            if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }\n            uVar21 = 0;\n            puVar25 = pattr + 1;\n            uVar13 = (char *)CONCAT31(0,*pattr);\n            attr_value.val.intval._4_4_ = 0;\n            attr_value.val.stringval = uVar13;\n            pattr = puVar25;\n            if (uVar3 == 0x31) goto LAB_000577b8;\n            if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;\n          }" { (if_statement "if (uVar26 != 0x11) {\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }" if (parenthesized_expression "(uVar26 != 0x11)" ( (binary_expression "uVar26 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }\n              if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              uVar14 = *(uint *)(pattr + 4);\n              uVar16 = uVar14;\n              if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }\n              pattr = pattr + 8;\n              str_off = CONCAT44(uVar16,uVar17);\nLAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              goto joined_r0x00057a0a;\n            }" { (if_statement "if (uVar26 < 0x12) {\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }" if (parenthesized_expression "(uVar26 < 0x12)" ( (binary_expression "uVar26 < 0x12" identifier < number_literal) )) (compound_statement "{\n                if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar2 = *pattr;\n                if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }\n                goto LAB_00057d6a;\n              }" { (if_statement "if (uVar26 != 0xf) {\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }" if (parenthesized_expression "(uVar26 != 0xf)" ( (binary_expression "uVar26 != 0xf" identifier != number_literal) )) (compound_statement "{\n                  if (uVar26 != 0x10) {\n                    return false;\n                  }\n                  pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                  uVar26 = pDVar12->address_size_;\n                  if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }\n                  if (uVar26 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000578e2;\n                }" { (if_statement "if (uVar26 != 0x10) {\n                    return false;\n                  }" if (parenthesized_expression "(uVar26 != 0x10)" ( (binary_expression "uVar26 != 0x10" identifier != number_literal) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (expression_statement "pDVar12 = (Dwarf_info_reader *)*in_EAX;" (assignment_expression "pDVar12 = (Dwarf_info_reader *)*in_EAX" identifier = (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier))) ;) (expression_statement "uVar26 = pDVar12->address_size_;" (assignment_expression "uVar26 = pDVar12->address_size_" identifier = (field_expression "pDVar12->address_size_" identifier -> field_identifier)) ;) (if_statement "if (2 < pDVar12->cu_version_) {\n                    uVar26 = pDVar12->offset_size_;\n                  }" if (parenthesized_expression "(2 < pDVar12->cu_version_)" ( (binary_expression "2 < pDVar12->cu_version_" number_literal < (field_expression "pDVar12->cu_version_" identifier -> field_identifier)) )) (compound_statement "{\n                    uVar26 = pDVar12->offset_size_;\n                  }" { (expression_statement "uVar26 = pDVar12->offset_size_;" (assignment_expression "uVar26 = pDVar12->offset_size_" identifier = (field_expression "pDVar12->offset_size_" identifier -> field_identifier)) ;) })) (if_statement "if (uVar26 == 4) goto LAB_00057e35;" if (parenthesized_expression "(uVar26 == 4)" ( (binary_expression "uVar26 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00057e35;" goto statement_identifier ;)) (labeled_statement "LAB_000578c9:\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);" statement_identifier : (expression_statement "str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);" (binary_expression "str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr)" (binary_expression "str_off = Dwarf_info_reader::read_from_pointer<64" (assignment_expression "str_off = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(pDVar12,&pattr)" ( (comma_expression "pDVar12,&pattr" identifier , (pointer_expression "&pattr" & identifier)) ))) ;)) (goto_statement "goto LAB_000578e2;" goto statement_identifier ;) })) (labeled_statement "LAB_00057ac5:\n                bVar2 = *pattr;" statement_identifier : (expression_statement "bVar2 = *pattr;" (assignment_expression "bVar2 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;)) (if_statement "if ((char)bVar2 < '\0') {\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }\n                else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);\n                  pattr = pattr + len;\n                }" { (expression_statement "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2);" (assignment_expression "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar2)" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_unsigned_LEB_128_x(pattr + 1,&len,bVar2)" identifier (argument_list "(pattr + 1,&len,bVar2)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }" else (compound_statement "{\n                  len = 1;\n                  attr_value.val.intval._1_7_ = 0;\n                  attr_value.val.uintval._0_1_ = bVar2;\n                  pattr = pattr + 1;\n                }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = bVar2;" (assignment_expression "attr_value.val.uintval._0_1_ = bVar2" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (if_statement "if (uVar26 == 0x13) {\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }" if (parenthesized_expression "(uVar26 == 0x13)" ( (binary_expression "uVar26 == 0x13" identifier == number_literal) )) (compound_statement "{\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                goto LAB_00057993;\n              }" { (expression_statement "pDVar12 = (Dwarf_info_reader *)*in_EAX;" (assignment_expression "pDVar12 = (Dwarf_info_reader *)*in_EAX" identifier = (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier))) ;) (goto_statement "goto LAB_00057993;" goto statement_identifier ;) })) (if_statement "if (uVar26 < 0x14) {\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }" if (parenthesized_expression "(uVar26 < 0x14)" ( (binary_expression "uVar26 < 0x14" identifier < number_literal) )) (compound_statement "{\n                piVar4 = *(int **)(*in_EAX + 8);\n                pcVar5 = *(code **)(*piVar4 + 0xc);\n                if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval._0_2_ = *pattr;\n                if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                pattr = pattr + 2;\n                goto joined_r0x00057a0a;\n              }" { (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }\n                else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                  cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n                }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar11 = (*pcVar5)(piVar4);\n                }" else (compound_statement "{\n                  cVar11 = (*pcVar5)(piVar4);\n                }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) comment (expression_statement "attr_value.val.blockval._0_2_ = *pattr;" (assignment_expression "attr_value.val.blockval._0_2_ = *pattr" (field_expression "attr_value.val.blockval._0_2_" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (if_statement "if (cVar11 != '\0') {\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n                }" { (expression_statement "attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);" (assignment_expression "attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1])" (field_expression "attr_value.val.intval._0_2_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "attr_value.val.intval._2_6_ = 0;" (assignment_expression "attr_value.val.intval._2_6_ = 0" (field_expression "attr_value.val.intval._2_6_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pattr = pattr + 2;" (assignment_expression "pattr = pattr + 2" identifier = (binary_expression "pattr + 2" identifier + number_literal)) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" else (compound_statement "{\n                cVar11 = (*pcVar5)(piVar4);\n              }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar17 = *(uint *)pattr;" (assignment_expression "uVar17 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar14 = *(uint *)(pattr + 4);" (assignment_expression "uVar14 = *(uint *)(pattr + 4)" identifier = (pointer_expression "*(uint *)(pattr + 4)" * (cast_expression "(uint *)(pattr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = uVar14;" (assignment_expression "uVar16 = uVar14" identifier = identifier) ;) (if_statement "if (cVar11 != '\0') {\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n                uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;\n              }" { (expression_statement "uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;" (assignment_expression "uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18" identifier = (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18;" (assignment_expression "uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                         uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (expression_statement "str_off = CONCAT44(uVar16,uVar17);" (assignment_expression "str_off = CONCAT44(uVar16,uVar17)" identifier = (call_expression "CONCAT44(uVar16,uVar17)" identifier (argument_list "(uVar16,uVar17)" ( identifier , identifier )))) ;) (labeled_statement "LAB_000579dc:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n                   Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n                   Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" (call_expression "lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" identifier (argument_list "((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" ( (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (call_expression "CONCAT44(iVar24,iVar18)" identifier (argument_list "(iVar24,iVar18)" ( identifier , identifier ))) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "puVar25 = pattr + 1;" (assignment_expression "puVar25 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = (char *)CONCAT31(0,*pattr);" (assignment_expression "uVar13 = (char *)CONCAT31(0,*pattr)" identifier = (cast_expression "(char *)CONCAT31(0,*pattr)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(0,*pattr)" identifier (argument_list "(0,*pattr)" ( number_literal , (pointer_expression "*pattr" * identifier) ))))) ;) (expression_statement "attr_value.val.intval._4_4_ = 0;" (assignment_expression "attr_value.val.intval._4_4_ = 0" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.stringval = uVar13;" (assignment_expression "attr_value.val.stringval = uVar13" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = puVar25;" (assignment_expression "pattr = puVar25" identifier = identifier) ;) (if_statement "if (uVar3 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (if_statement "if (uVar3 < 0x32) {\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }\n            else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;" if (parenthesized_expression "(uVar3 < 0x32)" ( (binary_expression "uVar3 < 0x32" identifier < number_literal) )) (compound_statement "{\n              if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }\n            }" { (if_statement "if (uVar3 == 1) {\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n                in_EAX[8] = (int)uVar13;\n                in_EAX[9] = 0;\n              }" { (expression_statement "in_EAX[8] = (int)uVar13;" (assignment_expression "in_EAX[8] = (int)uVar13" (subscript_expression "in_EAX[8]" identifier [ number_literal ]) = (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_EAX[9] = 0;" (assignment_expression "in_EAX[9] = 0" (subscript_expression "in_EAX[9]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;" else (if_statement "if (((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)) goto LAB_00057942;" if (parenthesized_expression "(((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47))" ( (binary_expression "((uVar3 != 0x6e) && (uVar3 != 0x2007)) && (uVar3 == 0x47)" (parenthesized_expression "((uVar3 != 0x6e) && (uVar3 != 0x2007))" ( (binary_expression "(uVar3 != 0x6e) && (uVar3 != 0x2007)" (parenthesized_expression "(uVar3 != 0x6e)" ( (binary_expression "uVar3 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar3 != 0x2007)" ( (binary_expression "uVar3 != 0x2007" identifier != number_literal) ))) )) && (parenthesized_expression "(uVar3 == 0x47)" ( (binary_expression "uVar3 == 0x47" identifier == number_literal) ))) )) (goto_statement "goto LAB_00057942;" goto statement_identifier ;)))) }) (else_clause "else {\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }" else (compound_statement "{\n            if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\njoined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }\n          }" { (if_statement "if (uVar26 == 0x19) {\n              attr_value.val.intval = 1;\n            }\n            else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }" if (parenthesized_expression "(uVar26 == 0x19)" ( (binary_expression "uVar26 == 0x19" identifier == number_literal) )) (compound_statement "{\n              attr_value.val.intval = 1;\n            }" { (expression_statement "attr_value.val.intval = 1;" (assignment_expression "attr_value.val.intval = 1" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = number_literal) ;) }) (else_clause "else {\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }" else (compound_statement "{\n              if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }\n              if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n                    /* WARNING: Load size is inaccurate */\n              attr_value.val.blockval = *pattr;\n              uVar17 = *(uint *)(pattr + 4);\n              attr_value.val.uintval._4_4_ = uVar17;\n              if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }\n              pattr = pattr + 8;\n            }" { (if_statement "if (uVar26 < 0x1a) {\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }" if (parenthesized_expression "(uVar26 < 0x1a)" ( (binary_expression "uVar26 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }\n                pDVar12 = (Dwarf_info_reader *)*in_EAX;\n                if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                pRVar6 = pDVar12->object_;\n                pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n                p_Var8 = pp_Var7[3];\n                if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                uVar17 = *(uint *)pattr;\n                if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }\n                pattr = pattr + 4;\n                str_off = (off_t)uVar17;\n                goto LAB_000579dc;\n              }" { (if_statement "if (uVar26 != 0x17) {\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }" if (parenthesized_expression "(uVar26 != 0x17)" ( (binary_expression "uVar26 != 0x17" identifier != number_literal) )) (compound_statement "{\n                  if (uVar26 != 0x18) {\n                    return false;\n                  }\n                  goto LAB_00057851;\n                }" { (if_statement "if (uVar26 != 0x18) {\n                    return false;\n                  }" if (parenthesized_expression "(uVar26 != 0x18)" ( (binary_expression "uVar26 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00057851;" goto statement_identifier ;) })) (expression_statement "pDVar12 = (Dwarf_info_reader *)*in_EAX;" (assignment_expression "pDVar12 = (Dwarf_info_reader *)*in_EAX" identifier = (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier))) ;) (if_statement "if (pDVar12->offset_size_ != 4) {\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }" if (parenthesized_expression "(pDVar12->offset_size_ != 4)" ( (binary_expression "pDVar12->offset_size_ != 4" (field_expression "pDVar12->offset_size_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                  str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);\n                  goto LAB_000579dc;\n                }" { (expression_statement "str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr);" (binary_expression "str_off = Dwarf_info_reader::read_from_pointer<64>(pDVar12,&pattr)" (binary_expression "str_off = Dwarf_info_reader::read_from_pointer<64" (assignment_expression "str_off = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(pDVar12,&pattr)" ( (comma_expression "pDVar12,&pattr" identifier , (pointer_expression "&pattr" & identifier)) ))) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00057993:\n                pRVar6 = pDVar12->object_;" statement_identifier : (expression_statement "pRVar6 = pDVar12->object_;" (assignment_expression "pRVar6 = pDVar12->object_" identifier = (field_expression "pDVar12->object_" identifier -> field_identifier)) ;)) (expression_statement "pp_Var7 = (pRVar6->super_Object)._vptr_Object;" (assignment_expression "pp_Var7 = (pRVar6->super_Object)._vptr_Object" identifier = (field_expression "(pRVar6->super_Object)._vptr_Object" (parenthesized_expression "(pRVar6->super_Object)" ( (field_expression "pRVar6->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var8 = pp_Var7[3];" (assignment_expression "p_Var8 = pp_Var7[3]" identifier = (subscript_expression "pp_Var7[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var8 == Relobj::is_big_endian) {\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }\n                else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }" if (parenthesized_expression "(p_Var8 == Relobj::is_big_endian)" ( (binary_expression "p_Var8 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                  iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                  cVar11 = (char)iVar15;\n                }" { (expression_statement "iVar15 = (*pp_Var7[0x3a])(pRVar6);" (assignment_expression "iVar15 = (*pp_Var7[0x3a])(pRVar6)" identifier = (call_expression "(*pp_Var7[0x3a])(pRVar6)" (parenthesized_expression "(*pp_Var7[0x3a])" ( (pointer_expression "*pp_Var7[0x3a]" * (subscript_expression "pp_Var7[0x3a]" identifier [ number_literal ])) )) (argument_list "(pRVar6)" ( identifier )))) ;) (expression_statement "cVar11 = (char)iVar15;" (assignment_expression "cVar11 = (char)iVar15" identifier = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }" else (compound_statement "{\n                  iVar15 = (*p_Var8)(pRVar6);\n                  cVar11 = (char)iVar15;\n                }" { (expression_statement "iVar15 = (*p_Var8)(pRVar6);" (assignment_expression "iVar15 = (*p_Var8)(pRVar6)" identifier = (call_expression "(*p_Var8)(pRVar6)" (parenthesized_expression "(*p_Var8)" ( (pointer_expression "*p_Var8" * identifier) )) (argument_list "(pRVar6)" ( identifier )))) ;) (expression_statement "cVar11 = (char)iVar15;" (assignment_expression "cVar11 = (char)iVar15" identifier = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar17 = *(uint *)pattr;" (assignment_expression "uVar17 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;\n                }" { (expression_statement "uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18;" (assignment_expression "uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18" identifier = (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                           uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "str_off = (off_t)uVar17;" (assignment_expression "str_off = (off_t)uVar17" identifier = (cast_expression "(off_t)uVar17" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (if_statement "if (uVar26 != 0x20) {\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }" if (parenthesized_expression "(uVar26 != 0x20)" ( (binary_expression "uVar26 != 0x20" identifier != number_literal) )) (compound_statement "{\n                if (uVar26 < 0x20) {\n                  return false;\n                }\n                if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }\n                goto LAB_00057ac5;\n              }" { (if_statement "if (uVar26 < 0x20) {\n                  return false;\n                }" if (parenthesized_expression "(uVar26 < 0x20)" ( (binary_expression "uVar26 < 0x20" identifier < number_literal) )) (compound_statement "{\n                  return false;\n                }" { (return_statement "return false;" return false ;) })) (if_statement "if (1 < uVar26 - 0x1f01) {\n                  return false;\n                }" if (parenthesized_expression "(1 < uVar26 - 0x1f01)" ( (binary_expression "1 < uVar26 - 0x1f01" number_literal < (binary_expression "uVar26 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                  return false;\n                }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00057ac5;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" else (compound_statement "{\n                cVar11 = (*pcVar5)(piVar4);\n              }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) comment (expression_statement "attr_value.val.blockval = *pattr;" (assignment_expression "attr_value.val.blockval = *pattr" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "uVar17 = *(uint *)(pattr + 4);" (assignment_expression "uVar17 = *(uint *)(pattr + 4)" identifier = (pointer_expression "*(uint *)(pattr + 4)" * (cast_expression "(uint *)(pattr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "attr_value.val.uintval._4_4_ = uVar17;" (assignment_expression "attr_value.val.uintval._4_4_ = uVar17" (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (cVar11 != '\0') {\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;\n                attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);\n              }" { (expression_statement "attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18;" (assignment_expression "attr_value.val.uintval._4_4_ =\n                     (uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18" (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8 |\n                     (int)attr_value.val.stringval << 0x18" (binary_expression "(uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8 |\n                     ((uint)attr_value.val.stringval & 0xff00) << 8" (binary_expression "(uint)attr_value.val.stringval >> 0x18 |\n                     ((uint)attr_value.val.stringval & 0xff0000) >> 8" (binary_expression "(uint)attr_value.val.stringval >> 0x18" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) >> number_literal) | (binary_expression "((uint)attr_value.val.stringval & 0xff0000) >> 8" (parenthesized_expression "((uint)attr_value.val.stringval & 0xff0000)" ( (binary_expression "(uint)attr_value.val.stringval & 0xff0000" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)attr_value.val.stringval & 0xff00) << 8" (parenthesized_expression "((uint)attr_value.val.stringval & 0xff00)" ( (binary_expression "(uint)attr_value.val.stringval & 0xff00" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)attr_value.val.stringval << 0x18" (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) << number_literal))) ;) (expression_statement "attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18);" (assignment_expression "attr_value.val.stringval =\n                     (char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18)" ( (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                             uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) }))) (if_statement "if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;" if (parenthesized_expression "((uVar3 == 0x6e) || (uVar3 == 0x2007))" ( (binary_expression "(uVar3 == 0x6e) || (uVar3 == 0x2007)" (parenthesized_expression "(uVar3 == 0x6e)" ( (binary_expression "uVar3 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar3 == 0x2007)" ( (binary_expression "uVar3 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (labeled_statement "joined_r0x00057e18:\n            if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }" statement_identifier : (if_statement "if (uVar3 == 3) {\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }" if (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) )) (compound_statement "{\n              if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;\n            }" { (if_statement "if (uVar26 == 8) {\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }\n              else if (uVar26 == 0xe) goto LAB_00057d36;" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;\n              }" { (labeled_statement "LAB_00057816:\n                in_EAX[0xf] = (int)attr_value.val.stringval;" statement_identifier : (expression_statement "in_EAX[0xf] = (int)attr_value.val.stringval;" (assignment_expression "in_EAX[0xf] = (int)attr_value.val.stringval" (subscript_expression "in_EAX[0xf]" identifier [ number_literal ]) = (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier))) ;)) }) (else_clause "else if (uVar26 == 0xe) goto LAB_00057d36;" else (if_statement "if (uVar26 == 0xe) goto LAB_00057d36;" if (parenthesized_expression "(uVar26 == 0xe)" ( (binary_expression "uVar26 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00057d36;" goto statement_identifier ;)))) }))) }))))) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar26 == 7) {\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(uVar26 == 7)" ( (binary_expression "uVar26 == 7" identifier == number_literal) )) (compound_statement "{\n          piVar4 = *(int **)(*in_EAX + 8);\n          pcVar5 = *(code **)(*piVar4 + 0xc);\n          if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }\n          uVar17 = *(uint *)pattr;\n          uVar14 = *(uint *)(pattr + 4);\n          uVar16 = uVar14;\n          if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }\n          pattr = pattr + 8;\n          str_off = CONCAT44(uVar16,uVar17);\nLAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" { (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }\n          else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n            cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n          }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n            cVar11 = (*pcVar5)(piVar4);\n          }" else (compound_statement "{\n            cVar11 = (*pcVar5)(piVar4);\n          }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar17 = *(uint *)pattr;" (assignment_expression "uVar17 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar14 = *(uint *)(pattr + 4);" (assignment_expression "uVar14 = *(uint *)(pattr + 4)" identifier = (pointer_expression "*(uint *)(pattr + 4)" * (cast_expression "(uint *)(pattr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = uVar14;" (assignment_expression "uVar16 = uVar14" identifier = identifier) ;) (if_statement "if (cVar11 != '\0') {\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;\n            uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;\n          }" { (expression_statement "uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18;" (assignment_expression "uVar16 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18" identifier = (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                     uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18;" (assignment_expression "uVar17 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                     uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (expression_statement "str_off = CONCAT44(uVar16,uVar17);" (assignment_expression "str_off = CONCAT44(uVar16,uVar17)" identifier = (call_expression "CONCAT44(uVar16,uVar17)" identifier (argument_list "(uVar16,uVar17)" ( identifier , identifier )))) ;) (labeled_statement "LAB_00057f30:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n               Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n               Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" (call_expression "lookup_reloc\n                         ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" identifier (argument_list "((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" ( (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (call_expression "CONCAT44(iVar24,iVar18)" identifier (argument_list "(iVar24,iVar18)" ( identifier , identifier ))) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "joined_r0x00057583:\n          if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }" statement_identifier : (if_statement "if ((uVar3 != 0x31) && (uVar3 < 0x32)) {\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }" if (parenthesized_expression "((uVar3 != 0x31) && (uVar3 < 0x32))" ( (binary_expression "(uVar3 != 0x31) && (uVar3 < 0x32)" (parenthesized_expression "(uVar3 != 0x31)" ( (binary_expression "uVar3 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar3 < 0x32)" ( (binary_expression "uVar3 < 0x32" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;\n          }" { (labeled_statement "LAB_00057c63:\n            if (uVar3 != 1) goto joined_r0x00057e18;" statement_identifier : (if_statement "if (uVar3 != 1) goto joined_r0x00057e18;" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x00057e18;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar26 < 8) {\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }" if (parenthesized_expression "(uVar26 < 8)" ( (binary_expression "uVar26 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }\n          goto joined_r0x00057583;\n        }" { (if_statement "if (uVar26 == 4) {\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }\n          else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }" if (parenthesized_expression "(uVar26 == 4)" ( (binary_expression "uVar26 == 4" identifier == number_literal) )) (compound_statement "{\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.blockval = pattr + 4;\n            pattr = pattr + 4 + attr_value.aux.shndx;\n          }" { (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" else (compound_statement "{\n              cVar11 = (*pcVar5)(piVar4);\n            }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "attr_value.aux.shndx = *(uint *)pattr;" (assignment_expression "attr_value.aux.shndx = *(uint *)pattr" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }" { (expression_statement "attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;" (assignment_expression "attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18" (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8" (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8" (binary_expression "attr_value.aux.shndx >> 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) >> number_literal) | (binary_expression "(attr_value.aux.shndx & 0xff0000) >> 8" (parenthesized_expression "(attr_value.aux.shndx & 0xff0000)" ( (binary_expression "attr_value.aux.shndx & 0xff0000" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) & number_literal) )) >> number_literal)) | (binary_expression "(attr_value.aux.shndx & 0xff00) << 8" (parenthesized_expression "(attr_value.aux.shndx & 0xff00)" ( (binary_expression "attr_value.aux.shndx & 0xff00" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) & number_literal) )) << number_literal)) | (binary_expression "attr_value.aux.shndx << 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) << number_literal))) ;) })) (expression_statement "attr_value.val.blockval = pattr + 4;" (assignment_expression "attr_value.val.blockval = pattr + 4" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "pattr = pattr + 4 + attr_value.aux.shndx;" (assignment_expression "pattr = pattr + 4 + attr_value.aux.shndx" identifier = (binary_expression "pattr + 4 + attr_value.aux.shndx" (binary_expression "pattr + 4" identifier + number_literal) + (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }" else (if_statement "if (uVar26 < 5) {\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }\n          else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }" if (parenthesized_expression "(uVar26 < 5)" ( (binary_expression "uVar26 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }\n            if (uVar26 != 3) {\n              return false;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n            uVar10 = *(ushort *)pattr;\n            if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar10;\n            attr_value.val.blockval = pattr + 2;\n            pattr = pattr + 2 + attr_value.aux.shndx;\n          }" { (if_statement "if (uVar26 == 1) {\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n              pDVar12 = (Dwarf_info_reader *)*in_EAX;\n              if (pDVar12->address_size_ != 4) goto LAB_000578c9;\nLAB_00057e35:\n              pRVar6 = pDVar12->object_;\n              pp_Var7 = (pRVar6->super_Object)._vptr_Object;\n              p_Var8 = pp_Var7[3];\n              if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              uVar26 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar26;\nLAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar3 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }\n              goto LAB_00057a16;\n            }" { (expression_statement "pDVar12 = (Dwarf_info_reader *)*in_EAX;" (assignment_expression "pDVar12 = (Dwarf_info_reader *)*in_EAX" identifier = (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier))) ;) (if_statement "if (pDVar12->address_size_ != 4) goto LAB_000578c9;" if (parenthesized_expression "(pDVar12->address_size_ != 4)" ( (binary_expression "pDVar12->address_size_ != 4" (field_expression "pDVar12->address_size_" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_000578c9;" goto statement_identifier ;)) (labeled_statement "LAB_00057e35:\n              pRVar6 = pDVar12->object_;" statement_identifier : (expression_statement "pRVar6 = pDVar12->object_;" (assignment_expression "pRVar6 = pDVar12->object_" identifier = (field_expression "pDVar12->object_" identifier -> field_identifier)) ;)) (expression_statement "pp_Var7 = (pRVar6->super_Object)._vptr_Object;" (assignment_expression "pp_Var7 = (pRVar6->super_Object)._vptr_Object" identifier = (field_expression "(pRVar6->super_Object)._vptr_Object" (parenthesized_expression "(pRVar6->super_Object)" ( (field_expression "pRVar6->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var8 = pp_Var7[3];" (assignment_expression "p_Var8 = pp_Var7[3]" identifier = (subscript_expression "pp_Var7[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var8 == Relobj::is_big_endian) {\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }\n              else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }" if (parenthesized_expression "(p_Var8 == Relobj::is_big_endian)" ( (binary_expression "p_Var8 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                iVar15 = (*pp_Var7[0x3a])(pRVar6);\n                cVar11 = (char)iVar15;\n              }" { (expression_statement "iVar15 = (*pp_Var7[0x3a])(pRVar6);" (assignment_expression "iVar15 = (*pp_Var7[0x3a])(pRVar6)" identifier = (call_expression "(*pp_Var7[0x3a])(pRVar6)" (parenthesized_expression "(*pp_Var7[0x3a])" ( (pointer_expression "*pp_Var7[0x3a]" * (subscript_expression "pp_Var7[0x3a]" identifier [ number_literal ])) )) (argument_list "(pRVar6)" ( identifier )))) ;) (expression_statement "cVar11 = (char)iVar15;" (assignment_expression "cVar11 = (char)iVar15" identifier = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }" else (compound_statement "{\n                iVar15 = (*p_Var8)(pRVar6);\n                cVar11 = (char)iVar15;\n              }" { (expression_statement "iVar15 = (*p_Var8)(pRVar6);" (assignment_expression "iVar15 = (*p_Var8)(pRVar6)" identifier = (call_expression "(*p_Var8)(pRVar6)" (parenthesized_expression "(*p_Var8)" ( (pointer_expression "*p_Var8" * identifier) )) (argument_list "(pRVar6)" ( identifier )))) ;) (expression_statement "cVar11 = (char)iVar15;" (assignment_expression "cVar11 = (char)iVar15" identifier = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar26 = *(uint *)pattr;" (assignment_expression "uVar26 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;\n              }" { (expression_statement "uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18;" (assignment_expression "uVar26 = uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18" identifier = (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8 |\n                         uVar26 << 0x18" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8 | (uVar26 & 0xff00) << 8" (binary_expression "uVar26 >> 0x18 | (uVar26 & 0xff0000) >> 8" (binary_expression "uVar26 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar26 & 0xff0000) >> 8" (parenthesized_expression "(uVar26 & 0xff0000)" ( (binary_expression "uVar26 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar26 & 0xff00) << 8" (parenthesized_expression "(uVar26 & 0xff00)" ( (binary_expression "uVar26 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar26 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "str_off = (off_t)uVar26;" (assignment_expression "str_off = (off_t)uVar26" identifier = (cast_expression "(off_t)uVar26" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (labeled_statement "LAB_000578e2:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n                   Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n                   Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off);" (call_expression "lookup_reloc\n                             ((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" identifier (argument_list "((Dwarf_info_reader *)*in_EAX,CONCAT44(iVar24,iVar18),&str_off)" ( (cast_expression "(Dwarf_info_reader *)*in_EAX" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (call_expression "CONCAT44(iVar24,iVar18)" identifier (argument_list "(iVar24,iVar18)" ( identifier , identifier ))) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar3 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar3) {\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }" if (parenthesized_expression "(0x31 < uVar3)" ( (binary_expression "0x31 < uVar3" number_literal < identifier) )) (compound_statement "{\n                if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;\n                goto LAB_00057931;\n              }" { (if_statement "if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) goto LAB_00057590;" if (parenthesized_expression "((uVar3 == 0x6e) || (uVar3 == 0x2007))" ( (binary_expression "(uVar3 == 0x6e) || (uVar3 == 0x2007)" (parenthesized_expression "(uVar3 == 0x6e)" ( (binary_expression "uVar3 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar3 == 0x2007)" ( (binary_expression "uVar3 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (goto_statement "goto LAB_00057931;" goto statement_identifier ;) })) (goto_statement "goto LAB_00057a16;" goto statement_identifier ;) })) (if_statement "if (uVar26 != 3) {\n              return false;\n            }" if (parenthesized_expression "(uVar26 != 3)" ( (binary_expression "uVar26 != 3" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" else (compound_statement "{\n              cVar11 = (*pcVar5)(piVar4);\n            }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar10 = *(ushort *)pattr;" (assignment_expression "uVar10 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar10 = CONCAT11(*pattr,pattr[1]);\n            }" { (expression_statement "uVar10 = CONCAT11(*pattr,pattr[1]);" (assignment_expression "uVar10 = CONCAT11(*pattr,pattr[1])" identifier = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "attr_value.aux.shndx._2_2_ = 0;" (assignment_expression "attr_value.aux.shndx._2_2_ = 0" (field_expression "attr_value.aux.shndx._2_2_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.aux.shndx._0_2_ = uVar10;" (assignment_expression "attr_value.aux.shndx._0_2_ = uVar10" (field_expression "attr_value.aux.shndx._0_2_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "attr_value.val.blockval = pattr + 2;" (assignment_expression "attr_value.val.blockval = pattr + 2" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (binary_expression "pattr + 2" identifier + number_literal)) ;) (expression_statement "pattr = pattr + 2 + attr_value.aux.shndx;" (assignment_expression "pattr = pattr + 2 + attr_value.aux.shndx" identifier = (binary_expression "pattr + 2 + attr_value.aux.shndx" (binary_expression "pattr + 2" identifier + number_literal) + (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }" else (compound_statement "{\n            if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }\n            piVar4 = *(int **)(*in_EAX + 8);\n            pcVar5 = *(code **)(*piVar4 + 0xc);\n            if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }\n                    /* WARNING: Load size is inaccurate */\n            attr_value.val.blockval._0_2_ = *pattr;\n            if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n          }" { (if_statement "if (uVar26 != 5) {\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }" if (parenthesized_expression "(uVar26 != 5)" ( (binary_expression "uVar26 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar26 != 6) {\n                return false;\n              }\n              piVar4 = *(int **)(*in_EAX + 8);\n              pcVar5 = *(code **)(*piVar4 + 0xc);\n              if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }\n              uVar17 = *(uint *)pattr;\n              if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }\n              pattr = pattr + 4;\n              str_off = (off_t)uVar17;\n              goto LAB_00057f30;\n            }" { (if_statement "if (uVar26 != 6) {\n                return false;\n              }" if (parenthesized_expression "(uVar26 != 6)" ( (binary_expression "uVar26 != 6" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }\n              else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n              }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n                cVar11 = (*pcVar5)(piVar4);\n              }" else (compound_statement "{\n                cVar11 = (*pcVar5)(piVar4);\n              }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) (expression_statement "uVar17 = *(uint *)pattr;" (assignment_expression "uVar17 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar11 != '\0') {\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;\n              }" { (expression_statement "uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18;" (assignment_expression "uVar17 = uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18" identifier = (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                         uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "str_off = (off_t)uVar17;" (assignment_expression "str_off = (off_t)uVar17" identifier = (cast_expression "(off_t)uVar17" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00057f30;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)(*in_EAX + 8);" (assignment_expression "piVar4 = *(int **)(*in_EAX + 8)" identifier = (pointer_expression "*(int **)(*in_EAX + 8)" * (cast_expression "(int **)(*in_EAX + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*in_EAX + 8)" ( (binary_expression "*in_EAX + 8" (pointer_expression "*in_EAX" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(*piVar4 + 0xc);" (assignment_expression "pcVar5 = *(code **)(*piVar4 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xc)" * (cast_expression "(code **)(*piVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar5 == Relobj::is_big_endian) {\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }\n            else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" if (parenthesized_expression "(pcVar5 == Relobj::is_big_endian)" ( (binary_expression "pcVar5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);\n            }" { (expression_statement "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4);" (assignment_expression "cVar11 = (**(code **)(*piVar4 + 0xe8))(piVar4)" identifier = (call_expression "(**(code **)(*piVar4 + 0xe8))(piVar4)" (parenthesized_expression "(**(code **)(*piVar4 + 0xe8))" ( (pointer_expression "**(code **)(*piVar4 + 0xe8)" * (pointer_expression "*(code **)(*piVar4 + 0xe8)" * (cast_expression "(code **)(*piVar4 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xe8)" ( (binary_expression "*piVar4 + 0xe8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4)" ( identifier )))) ;) }) (else_clause "else {\n              cVar11 = (*pcVar5)(piVar4);\n            }" else (compound_statement "{\n              cVar11 = (*pcVar5)(piVar4);\n            }" { (expression_statement "cVar11 = (*pcVar5)(piVar4);" (assignment_expression "cVar11 = (*pcVar5)(piVar4)" identifier = (call_expression "(*pcVar5)(piVar4)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(piVar4)" ( identifier )))) ;) }))) comment (expression_statement "attr_value.val.blockval._0_2_ = *pattr;" (assignment_expression "attr_value.val.blockval._0_2_ = *pattr" (field_expression "attr_value.val.blockval._0_2_" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (if_statement "if (cVar11 != '\0') {\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);\n            }" { (expression_statement "attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1]);" (assignment_expression "attr_value.val.intval._0_2_ = CONCAT11(*pattr,pattr[1])" (field_expression "attr_value.val.intval._0_2_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "pattr = pattr + 2;" (assignment_expression "pattr = pattr + 2" identifier = (binary_expression "pattr + 2" identifier + number_literal)) ;) (expression_statement "attr_value.val.intval._2_6_ = 0;" (assignment_expression "attr_value.val.intval._2_6_ = 0" (field_expression "attr_value.val.intval._2_6_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) }))))) (goto_statement "goto joined_r0x00057583;" goto statement_identifier ;) })) (if_statement "if (uVar26 == 10) {\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }" if (parenthesized_expression "(uVar26 == 10)" ( (binary_expression "uVar26 == 10" identifier == number_literal) )) (compound_statement "{\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = *pattr;\n          attr_value.val.blockval = pattr + 1;\n          pattr = pattr + 1 + attr_value.aux.shndx;\n          goto joined_r0x00057583;\n        }" { (expression_statement "attr_value.aux.shndx._1_3_ = 0;" (assignment_expression "attr_value.aux.shndx._1_3_ = 0" (field_expression "attr_value.aux.shndx._1_3_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.aux.shndx._0_1_ = *pattr;" (assignment_expression "attr_value.aux.shndx._0_1_ = *pattr" (field_expression "attr_value.aux.shndx._0_1_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "attr_value.val.blockval = pattr + 1;" (assignment_expression "attr_value.val.blockval = pattr + 1" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "pattr = pattr + 1 + attr_value.aux.shndx;" (assignment_expression "pattr = pattr + 1 + attr_value.aux.shndx" identifier = (binary_expression "pattr + 1 + attr_value.aux.shndx" (binary_expression "pattr + 1" identifier + number_literal) + (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier))) ;) (goto_statement "goto joined_r0x00057583;" goto statement_identifier ;) })) (if_statement "if (uVar26 < 0xb) {\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }" if (parenthesized_expression "(uVar26 < 0xb)" ( (binary_expression "uVar26 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar25 + len + 1;\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }\n          if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;\n          goto LAB_00057816;\n        }" { (if_statement "if (uVar26 != 8) {\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }" if (parenthesized_expression "(uVar26 != 8)" ( (binary_expression "uVar26 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar26 != 9) {\n              return false;\n            }\nLAB_00057851:\n            bVar2 = *pattr;\n            aVar19.shndx._1_3_ = 0;\n            aVar19.shndx._0_1_ = bVar2;\n            local_6c = pattr + 1;\n            if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }\n            attr_value.val.blockval = local_6c;\n            pattr = local_70 + aVar19.shndx + len;\n            attr_value.aux = aVar19;\n            goto LAB_00057d6a;\n          }" { (if_statement "if (uVar26 != 9) {\n              return false;\n            }" if (parenthesized_expression "(uVar26 != 9)" ( (binary_expression "uVar26 != 9" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00057851:\n            bVar2 = *pattr;" statement_identifier : (expression_statement "bVar2 = *pattr;" (assignment_expression "bVar2 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;)) (expression_statement "aVar19.shndx._1_3_ = 0;" (assignment_expression "aVar19.shndx._1_3_ = 0" (field_expression "aVar19.shndx._1_3_" (field_expression "aVar19.shndx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar19.shndx._0_1_ = bVar2;" (assignment_expression "aVar19.shndx._0_1_ = bVar2" (field_expression "aVar19.shndx._0_1_" (field_expression "aVar19.shndx" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_6c = pattr + 1;" (assignment_expression "local_6c = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar2 < '\0') {\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }\n            else {\n              len = 1;\n              local_70 = pattr;\n            }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);\n              aVar19.shndx = (uint)uVar28;\n              local_70 = pattr;\n              local_6c = pattr + len;\n            }" { (expression_statement "uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2);" (assignment_expression "uVar28 = read_unsigned_LEB_128_x(local_6c,&len,bVar2)" identifier = (call_expression "read_unsigned_LEB_128_x(local_6c,&len,bVar2)" identifier (argument_list "(local_6c,&len,bVar2)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "aVar19.shndx = (uint)uVar28;" (assignment_expression "aVar19.shndx = (uint)uVar28" (field_expression "aVar19.shndx" identifier . field_identifier) = (cast_expression "(uint)uVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_70 = pattr;" (assignment_expression "local_70 = pattr" identifier = identifier) ;) (expression_statement "local_6c = pattr + len;" (assignment_expression "local_6c = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n              len = 1;\n              local_70 = pattr;\n            }" else (compound_statement "{\n              len = 1;\n              local_70 = pattr;\n            }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "local_70 = pattr;" (assignment_expression "local_70 = pattr" identifier = identifier) ;) }))) (expression_statement "attr_value.val.blockval = local_6c;" (assignment_expression "attr_value.val.blockval = local_6c" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = local_70 + aVar19.shndx + len;" (assignment_expression "pattr = local_70 + aVar19.shndx + len" identifier = (binary_expression "local_70 + aVar19.shndx + len" (binary_expression "local_70 + aVar19.shndx" identifier + (field_expression "aVar19.shndx" identifier . field_identifier)) + identifier)) ;) (expression_statement "attr_value.aux = aVar19;" (assignment_expression "attr_value.aux = aVar19" (field_expression "attr_value.aux" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (expression_statement "attr_value.val.blockval = pattr;" (assignment_expression "attr_value.val.blockval = pattr" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "len = strlen((char *)pattr);" (assignment_expression "len = strlen((char *)pattr)" identifier = (call_expression "strlen((char *)pattr)" identifier (argument_list "((char *)pattr)" ( (cast_expression "(char *)pattr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pattr = puVar25 + len + 1;" (assignment_expression "pattr = puVar25 + len + 1" identifier = (binary_expression "puVar25 + len + 1" (binary_expression "puVar25 + len" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar3 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar3) {\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }" if (parenthesized_expression "(0x31 < uVar3)" ( (binary_expression "0x31 < uVar3" number_literal < identifier) )) (compound_statement "{\n            if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }\n            goto LAB_00057590;\n          }" { (if_statement "if ((uVar3 == 0x6e) || (uVar3 == 0x2007)) {\n              in_EAX[0x12] = (int)puVar25;\n            }" if (parenthesized_expression "((uVar3 == 0x6e) || (uVar3 == 0x2007))" ( (binary_expression "(uVar3 == 0x6e) || (uVar3 == 0x2007)" (parenthesized_expression "(uVar3 == 0x6e)" ( (binary_expression "uVar3 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar3 == 0x2007)" ( (binary_expression "uVar3 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\n              in_EAX[0x12] = (int)puVar25;\n            }" { (expression_statement "in_EAX[0x12] = (int)puVar25;" (assignment_expression "in_EAX[0x12] = (int)puVar25" (subscript_expression "in_EAX[0x12]" identifier [ number_literal ]) = (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if ((uVar3 == 1) || (uVar3 != 3)) goto LAB_00057590;" if (parenthesized_expression "((uVar3 == 1) || (uVar3 != 3))" ( (binary_expression "(uVar3 == 1) || (uVar3 != 3)" (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (goto_statement "goto LAB_00057816;" goto statement_identifier ;) })) (if_statement "if (uVar26 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" if (parenthesized_expression "(uVar26 < 0xd)" ( (binary_expression "uVar26 < 0xd" identifier < number_literal) )) (compound_statement "{\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\nLAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar3) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" { (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = *pattr;" (assignment_expression "attr_value.val.uintval._0_1_ = *pattr" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (labeled_statement "LAB_00057d6a:\n          if (uVar3 == 0x31) goto LAB_00057590;" statement_identifier : (if_statement "if (uVar3 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar3) goto LAB_00057d79;" if (parenthesized_expression "(0x31 < uVar3)" ( (binary_expression "0x31 < uVar3" number_literal < identifier) )) (goto_statement "goto LAB_00057d79;" goto statement_identifier ;)) (goto_statement "goto LAB_00057c63;" goto statement_identifier ;) })) (expression_statement "bVar2 = *pattr;" (assignment_expression "bVar2 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "puVar25 = pattr + 1;" (assignment_expression "puVar25 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar2 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }\n        else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);\n          puVar25 = pattr + len;\n        }" { (expression_statement "attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2);" (assignment_expression "attr_value.val.intval = read_signed_LEB_128_x(puVar25,&len,bVar2)" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_signed_LEB_128_x(puVar25,&len,bVar2)" identifier (argument_list "(puVar25,&len,bVar2)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "puVar25 = pattr + len;" (assignment_expression "puVar25 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }" else (compound_statement "{\n          attr_value.val.intval._4_4_ = 0;\n          attr_value.val.stringval = (char *)CONCAT31(0,bVar2);\n          len = 1;\n          if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }\n        }" { (expression_statement "attr_value.val.intval._4_4_ = 0;" (assignment_expression "attr_value.val.intval._4_4_ = 0" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.stringval = (char *)CONCAT31(0,bVar2);" (assignment_expression "attr_value.val.stringval = (char *)CONCAT31(0,bVar2)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)CONCAT31(0,bVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(0,bVar2)" identifier (argument_list "(0,bVar2)" ( number_literal , identifier ))))) ;) (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (if_statement "if ((bVar2 & 0x40) != 0) {\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }" if (parenthesized_expression "((bVar2 & 0x40) != 0)" ( (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            attr_value.val.intval._4_4_ = 0xffffffff;\n            attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);\n          }" { (expression_statement "attr_value.val.intval._4_4_ = 0xffffffff;" (assignment_expression "attr_value.val.intval._4_4_ = 0xffffffff" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80);" (assignment_expression "attr_value.val.stringval = (char *)(CONCAT31(0,bVar2) | 0xffffff80)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(CONCAT31(0,bVar2) | 0xffffff80)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT31(0,bVar2) | 0xffffff80)" ( (binary_expression "CONCAT31(0,bVar2) | 0xffffff80" (call_expression "CONCAT31(0,bVar2)" identifier (argument_list "(0,bVar2)" ( number_literal , identifier ))) | number_literal) )))) ;) })) }))) (expression_statement "pattr = puVar25;" (assignment_expression "pattr = puVar25" identifier = identifier) ;) (if_statement "if (uVar3 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar3 == 0x31)" ( (binary_expression "uVar3 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar3) {\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" if (parenthesized_expression "(0x31 < uVar3)" ( (binary_expression "0x31 < uVar3" number_literal < identifier) )) (compound_statement "{\nLAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" { (labeled_statement "LAB_00057d79:\n          if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;" statement_identifier : (if_statement "if ((uVar3 != 0x6e) && (uVar3 != 0x2007)) goto LAB_00057590;" if (parenthesized_expression "((uVar3 != 0x6e) && (uVar3 != 0x2007))" ( (binary_expression "(uVar3 != 0x6e) && (uVar3 != 0x2007)" (parenthesized_expression "(uVar3 != 0x6e)" ( (binary_expression "uVar3 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar3 != 0x2007)" ( (binary_expression "uVar3 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (goto_statement "goto LAB_00057b31;" goto statement_identifier ;) })) (expression_statement "__position._M_current = (Attribute_value *)in_EAX[0xc];" (assignment_expression "__position._M_current = (Attribute_value *)in_EAX[0xc]" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Attribute_value *)in_EAX[0xc]" ( (type_descriptor "Attribute_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (__position._M_current != (Attribute_value *)in_EAX[0xd]) goto LAB_0005759c;" if (parenthesized_expression "(__position._M_current != (Attribute_value *)in_EAX[0xd])" ( (binary_expression "__position._M_current != (Attribute_value *)in_EAX[0xd]" (field_expression "__position._M_current" identifier . field_identifier) != (cast_expression "(Attribute_value *)in_EAX[0xd]" ( (type_descriptor "Attribute_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_EAX[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0005759c;" goto statement_identifier ;)) (labeled_statement "LAB_00057700:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier : (labeled_statement "std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier (ERROR "::Attribute_value>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Attribute_value>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value&>\n                  ((vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier (ERROR "::Attribute_value&>\n                  ((vector<gold:" : : identifier (ERROR "&" &) > ( ( (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value);" (comma_expression "Attribute_value>_>\n                    *)(in_EAX + 0xb),__position,&attr_value" (binary_expression "Attribute_value>_>\n                    *)(in_EAX + 0xb" (binary_expression "Attribute_value>_" identifier > identifier) > (binary_expression "*)(in_EAX + 0xb" (pointer_expression "*)(in_EAX" * (ERROR ")(" ) () identifier) + number_literal)) (ERROR ")" )) , (comma_expression "__position,&attr_value" identifier , (pointer_expression "&attr_value" & identifier))) (ERROR ")" )) ;)))))))) }))) (expression_statement "local_74 = local_74 + 8;" (assignment_expression "local_74 = local_74 + 8" identifier = (binary_expression "local_74 + 8" identifier + number_literal)) ;) (expression_statement "iVar18 = in_EAX[10];" (assignment_expression "iVar18 = in_EAX[10]" identifier = (subscript_expression "in_EAX[10]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(local_74 != iVar20)" ( (binary_expression "local_74 != iVar20" identifier != identifier) )) ;) }))) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children")" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children")" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") ))) ;) })) (labeled_statement "LAB_000575e3:\n  uVar26 = (int)pattr - (int)puVar1;" statement_identifier : (expression_statement "uVar26 = (int)pattr - (int)puVar1;" (assignment_expression "uVar26 = (int)pattr - (int)puVar1" identifier = (binary_expression "(int)pattr - (int)puVar1" (cast_expression "(int)pattr" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "iVar20 = uVar26 + in_EAX[2];" (assignment_expression "iVar20 = uVar26 + in_EAX[2]" identifier = (binary_expression "uVar26 + in_EAX[2]" identifier + (subscript_expression "in_EAX[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2]);" (assignment_expression "iVar24 = ((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2])" identifier = (binary_expression "((int)uVar26 >> 0x1f) + in_EAX[3] + (uint)CARRY4(uVar26,in_EAX[2])" (binary_expression "((int)uVar26 >> 0x1f) + in_EAX[3]" (parenthesized_expression "((int)uVar26 >> 0x1f)" ( (binary_expression "(int)uVar26 >> 0x1f" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "in_EAX[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar26,in_EAX[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,in_EAX[2])" identifier (argument_list "(uVar26,in_EAX[2])" ( identifier , (subscript_expression "in_EAX[2]" identifier [ number_literal ]) )))))) ;) (if_statement "if ((*(byte *)(iVar18 + 4) & 1) == 0) {\n    in_EAX[8] = iVar20;\n    in_EAX[9] = iVar24;\n  }\n  else {\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }" if (parenthesized_expression "((*(byte *)(iVar18 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar18 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar18 + 4) & 1)" ( (binary_expression "*(byte *)(iVar18 + 4) & 1" (pointer_expression "*(byte *)(iVar18 + 4)" * (cast_expression "(byte *)(iVar18 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    in_EAX[8] = iVar20;\n    in_EAX[9] = iVar24;\n  }" { (expression_statement "in_EAX[8] = iVar20;" (assignment_expression "in_EAX[8] = iVar20" (subscript_expression "in_EAX[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_EAX[9] = iVar24;" (assignment_expression "in_EAX[9] = iVar24" (subscript_expression "in_EAX[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }" else (compound_statement "{\n    in_EAX[6] = iVar20;\n    in_EAX[7] = iVar24;\n  }" { (expression_statement "in_EAX[6] = iVar20;" (assignment_expression "in_EAX[6] = iVar20" (subscript_expression "in_EAX[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_EAX[7] = iVar24;" (assignment_expression "in_EAX[7] = iVar24" (subscript_expression "in_EAX[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(undefined1 *)(in_EAX + 0xe) = 1;" (assignment_expression "*(undefined1 *)(in_EAX + 0xe) = 1" (pointer_expression "*(undefined1 *)(in_EAX + 0xe)" * (cast_expression "(undefined1 *)(in_EAX + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX + 0xe)" ( (binary_expression "in_EAX + 0xe" identifier + number_literal) )))) = number_literal) ;) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "ushort uVar7;" type_identifier identifier ;) (declaration "ulonglong uVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "void *pvVar17;" primitive_type (pointer_declarator "*pvVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulonglong uVar21;" type_identifier identifier ;) (declaration "ulonglong uVar22;" type_identifier identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "undefined8 local_3c;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x573eb;" (assignment_expression "uStack_14 = 0x573eb" identifier = number_literal) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" { (expression_statement "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *param_1;" (assignment_expression "iVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" identifier = (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2]" (pointer_expression "*(int *)(iVar15 + 0x2c)" * (cast_expression "(int *)(iVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) + (subscript_expression "param_1[2]" identifier [ number_literal ])) + (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))))) ;) (if_statement "if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" if (parenthesized_expression "((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U)" ( (binary_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U" (call_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" ( (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)" (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c)" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar15 + 0x3c)" * (cast_expression "(int *)(iVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar15 + 0x2c)" * (cast_expression "(int *)(iVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) ))))) ))) < (binary_expression "iVar14 + 1U" identifier + number_literal)) )) (compound_statement "{\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" { (expression_statement "FUN_00056bf0(iVar15);" (call_expression "FUN_00056bf0(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (iVar14 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_44 = (uint *)(param_1[4] + iVar14);" (assignment_expression "local_44 = (uint *)(param_1[4] + iVar14)" identifier = (cast_expression "(uint *)(param_1[4] + iVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[4] + iVar14)" ( (binary_expression "param_1[4] + iVar14" (subscript_expression "param_1[4]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);" (assignment_expression "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" identifier = (binary_expression "*(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" (pointer_expression "*(int *)(iVar13 + 0xc)" * (cast_expression "(int *)(iVar13 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar20 = iVar15 >> 3;" (assignment_expression "uVar20 = iVar15 >> 3" identifier = (binary_expression "iVar15 >> 3" identifier >> number_literal)) ;) (if_statement "if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }" if (parenthesized_expression "(0xccccccc < uVar20)" ( (binary_expression "0xccccccc < uVar20" number_literal < identifier) )) (compound_statement "{\n                    \n    FUN_0022c7a0("vector::reserve");\n  }" { (expression_statement "FUN_0022c7a0("vector::reserve");" (call_expression "FUN_0022c7a0("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "__src = (void *)param_1[0xb];" (assignment_expression "__src = (void *)param_1[0xb]" identifier = (cast_expression "(void *)param_1[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" if (parenthesized_expression "((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20)" ( (binary_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20" (call_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[0xd] - (int)__src >> 2) * -0x33333333)" ( (binary_expression "(param_1[0xd] - (int)__src >> 2) * -0x33333333" (parenthesized_expression "(param_1[0xd] - (int)__src >> 2)" ( (binary_expression "param_1[0xd] - (int)__src >> 2" (binary_expression "param_1[0xd] - (int)__src" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }" { (expression_statement "pvVar6 = (void *)param_1[0xc];" (assignment_expression "pvVar6 = (void *)param_1[0xc]" identifier = (cast_expression "(void *)param_1[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "__n = (int)pvVar6 - (int)__src;" (assignment_expression "__n = (int)pvVar6 - (int)__src" identifier = (binary_expression "(int)pvVar6 - (int)__src" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }" { (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar17 = __src;" (assignment_expression "pvVar17 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" else (compound_statement "{\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" { (expression_statement "__dest = (void *)FUN_001e5200(uVar20 * 0x14);" (assignment_expression "__dest = (void *)FUN_001e5200(uVar20 * 0x14)" identifier = (cast_expression "(void *)FUN_001e5200(uVar20 * 0x14)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(uVar20 * 0x14)" identifier (argument_list "(uVar20 * 0x14)" ( (binary_expression "uVar20 * 0x14" identifier * number_literal) ))))) ;) (expression_statement "pvVar17 = (void *)param_1[0xb];" (assignment_expression "pvVar17 = (void *)param_1[0xb]" identifier = (cast_expression "(void *)param_1[0xb]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) }))) (if_statement "if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pvVar6)" ( (binary_expression "__src != pvVar6" identifier != identifier) )) (compound_statement "{\n      memmove(__dest,__src,__n);\n    }" { (expression_statement "memmove(__dest,__src,__n);" (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }" if (parenthesized_expression "(pvVar17 != (void *)0x0)" ( (binary_expression "pvVar17 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001e6db0(pvVar17);\n    }" { (expression_statement "FUN_001e6db0(pvVar17);" (call_expression "FUN_001e6db0(pvVar17)" identifier (argument_list "(pvVar17)" ( identifier ))) ;) })) (expression_statement "param_1[0xb] = (int)__dest;" (assignment_expression "param_1[0xb] = (int)__dest" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0xc] = __n + (int)__dest;" (assignment_expression "param_1[0xc] = __n + (int)__dest" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "__n + (int)__dest" identifier + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);" (assignment_expression "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest)" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (cast_expression "(int)(uVar20 * 0x14 + (int)__dest)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar20 * 0x14 + (int)__dest)" ( (binary_expression "uVar20 * 0x14 + (int)__dest" (binary_expression "uVar20 * 0x14" identifier * number_literal) + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (uVar20 != 0) goto LAB_00057480;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00057480;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" else (compound_statement "{\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" { (if_statement "if (uVar20 == 0) goto LAB_000575e3;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000575e3;" goto statement_identifier ;)) (labeled_statement "LAB_00057480:\n    local_74 = 0;" statement_identifier : (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);" do (compound_statement "{\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    }" { (expression_statement "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));" (assignment_expression "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8))" identifier = (cast_expression "(uint *)(local_74 + *(int *)(iVar13 + 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + *(int *)(iVar13 + 8))" ( (binary_expression "local_74 + *(int *)(iVar13 + 8)" identifier + (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar20 = puVar18[1];" (assignment_expression "uVar20 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar18;" (assignment_expression "uVar2 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" identifier = identifier) ;) (if_statement "if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" if (parenthesized_expression "(uVar20 == 0x16)" ( (binary_expression "uVar20 == 0x16" identifier == number_literal) )) (compound_statement "{\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" { (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_70 = (uint *)((int)local_44 + 1);" (assignment_expression "local_70 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }" if (parenthesized_expression "((char)(byte)*local_44 < '\0')" ( (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }" { (expression_statement "uVar20 = FUN_00095970(local_70,&local_40,uVar20);" (assignment_expression "uVar20 = FUN_00095970(local_70,&local_40,uVar20)" identifier = (call_expression "FUN_00095970(local_70,&local_40,uVar20)" identifier (argument_list "(local_70,&local_40,uVar20)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "local_70 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_70 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" identifier = identifier) ;) }) (else_clause "else {\n          local_40 = 1;\n        }" else (compound_statement "{\n          local_40 = 1;\n        }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "local_44 = local_70;" (assignment_expression "local_44 = local_70" identifier = identifier) ;) })) (expression_statement "puVar18 = local_44;" (assignment_expression "puVar18 = local_44" identifier = identifier) ;) (expression_statement "local_28._4_4_ = (uint)(uVar21 >> 0x20);" (assignment_expression "local_28._4_4_ = (uint)(uVar21 >> 0x20)" (field_expression "local_28._4_4_" identifier . field_identifier) = (call_expression "(uint)(uVar21 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 >> 0x20)" ( (binary_expression "uVar21 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar12 = (int)local_44 - iVar14;" (assignment_expression "uVar12 = (int)local_44 - iVar14" identifier = (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "iVar13 = uVar12 + param_1[2];" (assignment_expression "iVar13 = uVar12 + param_1[2]" identifier = (binary_expression "uVar12 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);" (assignment_expression "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" identifier = (binary_expression "((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" (binary_expression "((int)uVar12 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar12 >> 0x1f)" ( (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "param_1[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar12,param_1[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,param_1[2])" identifier (argument_list "(uVar12,param_1[2])" ( identifier , (subscript_expression "param_1[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_30 = uVar2;" (assignment_expression "local_30 = uVar2" identifier = identifier) ;) (expression_statement "local_2c = uVar20;" (assignment_expression "local_2c = uVar20" identifier = identifier) ;) (expression_statement "local_28 = uVar21;" (assignment_expression "local_28 = uVar21" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (compound_statement "{\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = *piVar3;" (assignment_expression "iVar10 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "pcVar4 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar4 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" if (parenthesized_expression "(*(int *)(*param_1 + 0x44) == 4)" ( (binary_expression "*(int *)(*param_1 + 0x44) == 4" (pointer_expression "*(int *)(*param_1 + 0x44)" * (cast_expression "(int *)(*param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x44)" ( (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }" { (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" { (expression_statement "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" ( (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" else (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" { (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" ( (pointer_expression "**(code **)(iVar10 + 0xe8)" * (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar20 = local_44[1];" (assignment_expression "uVar20 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c._4_4_ = uVar20;" (assignment_expression "local_3c._4_4_ = uVar20" (field_expression "local_3c._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" { (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" ( (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" { (if_statement "if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }" { (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" if (parenthesized_expression "((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3))" ( (binary_expression "(uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" ( (comma_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 3" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" { (labeled_statement "LAB_00057d36:\n              param_1[0x15] = local_20;" statement_identifier : (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar8;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar8" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" * (cast_expression "(ulonglong *)(param_1 + 0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) })) }) (else_clause "else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" else (compound_statement "{\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" { (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier = (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" identifier (argument_list "(local_3c._4_4_,(uint *)local_3c)" ( (field_expression "local_3c._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" { (labeled_statement "LAB_00057b8d:\n              param_1[0x15] = local_20;" statement_identifier : (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x13) = uVar21;" (assignment_expression "*(ulonglong *)(param_1 + 0x13) = uVar21" (pointer_expression "*(ulonglong *)(param_1 + 0x13)" * (cast_expression "(ulonglong *)(param_1 + 0x13)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" identifier = identifier) ;) })) }))) })) (labeled_statement "LAB_00057590:\n        puVar18 = (uint *)param_1[0xc];" statement_identifier : (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;)) (if_statement "if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;" if (parenthesized_expression "(puVar18 != (uint *)param_1[0xd])" ( (binary_expression "puVar18 != (uint *)param_1[0xd]" identifier != (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0005759c;" goto statement_identifier ;)) (labeled_statement "LAB_00057700:\n        local_28 = uVar22;" statement_identifier : (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" identifier = identifier) ;)) (expression_statement "FUN_0005b220(param_1 + 0xb,puVar18,&local_30);" (call_expression "FUN_0005b220(param_1 + 0xb,puVar18,&local_30)" identifier (argument_list "(param_1 + 0xb,puVar18,&local_30)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) , identifier , (pointer_expression "&local_30" & identifier) ))) ;) }) (else_clause "else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" else (compound_statement "{\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" { (if_statement "if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(0xe < uVar20)" ( (binary_expression "0xe < uVar20" number_literal < identifier) )) (compound_statement "{\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" { (if_statement "if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" if (parenthesized_expression "(uVar20 == 0x15)" ( (binary_expression "uVar20 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }" { (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }" { (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier = (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_40" & identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" else (compound_statement "{\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" identifier = (cast_expression "(ulonglong)(uint)bVar1" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (labeled_statement "joined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" statement_identifier : (if_statement "if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }" { (labeled_statement "LAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;" statement_identifier : (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" * (cast_expression "(ulonglong *)(param_1 + 0x18)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (if_statement "if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }" { (labeled_statement "LAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" statement_identifier : (if_statement "if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" if (parenthesized_expression "((uVar2 == 1) && (local_20 == 0))" ( (binary_expression "(uVar2 == 1) && (local_20 == 0)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_20 == 0)" ( (binary_expression "local_20 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" { (expression_statement "*(ulonglong *)(param_1 + 8) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 8)" * (cast_expression "(ulonglong *)(param_1 + 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }" { (labeled_statement "LAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;" statement_identifier : (expression_statement "local_28._0_4_ = (uint *)uVar22;" (assignment_expression "local_28._0_4_ = (uint *)uVar22" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" if (parenthesized_expression "(uVar20 == 8)" ( (binary_expression "uVar20 == 8" identifier == number_literal) )) (compound_statement "{\n                param_1[0x12] = (int)(uint *)local_28;\n              }" { (expression_statement "param_1[0x12] = (int)(uint *)local_28;" (assignment_expression "param_1[0x12] = (int)(uint *)local_28" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" else (compound_statement "{\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" { (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) goto LAB_00057b8d;" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00057b8d;" goto statement_identifier ;)) }))) }) (else_clause "else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" else (compound_statement "{\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" { (labeled_statement "joined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" statement_identifier : (if_statement "if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" if (parenthesized_expression "(uVar2 == 0x47)" ( (binary_expression "uVar2 == 0x47" identifier == number_literal) )) (compound_statement "{\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" { (expression_statement "*(ulonglong *)(param_1 + 0x16) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x16) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x16)" * (cast_expression "(ulonglong *)(param_1 + 0x16)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) = identifier) ;) }))) })))))))) }) (else_clause "else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" else (if_statement "if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" if (parenthesized_expression "(uVar20 < 0x16)" ( (binary_expression "uVar20 < 0x16" identifier < number_literal) )) (compound_statement "{\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }" { (if_statement "if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" if (parenthesized_expression "(uVar20 != 0x11)" ( (binary_expression "uVar20 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" { (if_statement "if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" if (parenthesized_expression "(uVar20 < 0x12)" ( (binary_expression "uVar20 < 0x12" identifier < number_literal) )) (compound_statement "{\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" { (if_statement "if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" if (parenthesized_expression "(uVar20 != 0xf)" ( (binary_expression "uVar20 != 0xf" identifier != number_literal) )) (compound_statement "{\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" { (if_statement "if (uVar20 != 0x10) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar20 != 0x10)" ( (binary_expression "uVar20 != 0x10" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar16 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x48)" identifier = (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" if (parenthesized_expression "(2 < *(uint *)(iVar10 + 0x4c))" ( (binary_expression "2 < *(uint *)(iVar10 + 0x4c)" number_literal < (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" { (expression_statement "iVar16 = *(int *)(iVar10 + 0x44);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x44)" identifier = (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar16 == 4) goto LAB_00057e35;" if (parenthesized_expression "(iVar16 == 4)" ( (binary_expression "iVar16 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00057e35;" goto statement_identifier ;)) (labeled_statement "LAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);" statement_identifier : (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" identifier = (call_expression "FUN_0005b150(iVar10,&local_44)" identifier (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;)) (goto_statement "goto LAB_000578e2;" goto statement_identifier ;) })) (labeled_statement "LAB_00057ac5:\n                bVar1 = (byte)*local_44;" statement_identifier : (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (if_statement "if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }" { (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier = (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" identifier (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_40" & identifier) , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" identifier = (cast_expression "(uint *)(local_40 + (int)local_44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + (int)local_44)" ( (binary_expression "local_40 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" else (compound_statement "{\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" identifier = (cast_expression "(ulonglong)(uint)bVar1" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" if (parenthesized_expression "(uVar20 == 0x13)" ( (binary_expression "uVar20 == 0x13" identifier == number_literal) )) (compound_statement "{\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_00057993;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" if (parenthesized_expression "(uVar20 < 0x14)" ( (binary_expression "uVar20 < 0x14" identifier < number_literal) )) (compound_statement "{\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = (ulonglong)uVar7;" (assignment_expression "uVar22 = (ulonglong)uVar7" identifier = (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "uVar5 = local_44[1];" (assignment_expression "uVar5 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar5;" (assignment_expression "uVar11 = uVar5" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" { (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = CONCAT44(uVar11,uVar12);" (assignment_expression "uVar21 = CONCAT44(uVar11,uVar12)" identifier = (call_expression "CONCAT44(uVar11,uVar12)" identifier (argument_list "(uVar11,uVar12)" ( identifier , identifier )))) ;) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000579dc:\n              local_3c = uVar21;" statement_identifier : (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;)) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" identifier = identifier) ;) (goto_statement "goto joined_r0x00057a0a;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }" { (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" { (expression_statement "param_1[8] = uVar20;" (assignment_expression "param_1[8] = uVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) })) }) (else_clause "else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" else (compound_statement "{\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" { (labeled_statement "joined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" statement_identifier : (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto joined_r0x00057934;" goto statement_identifier ;))) }))) }) (else_clause "else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" else (compound_statement "{\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" { (if_statement "if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" if (parenthesized_expression "(uVar20 == 0x19)" ( (binary_expression "uVar20 == 0x19" identifier == number_literal) )) (compound_statement "{\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }" { (expression_statement "local_28._0_4_ = (uint *)0x1;" (assignment_expression "local_28._0_4_ = (uint *)0x1" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" else (compound_statement "{\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" { (if_statement "if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" if (parenthesized_expression "(uVar20 < 0x1a)" ( (binary_expression "uVar20 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" { (if_statement "if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" if (parenthesized_expression "(uVar20 != 0x17)" ( (binary_expression "uVar20 != 0x17" identifier != number_literal) )) (compound_statement "{\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" { (if_statement "if (uVar20 != 0x18) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar20 != 0x18)" ( (binary_expression "uVar20 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00057851;" goto statement_identifier ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x44) != 4)" ( (binary_expression "*(int *)(iVar10 + 0x44) != 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" { (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" identifier = (call_expression "FUN_0005b150(iVar10,&local_44)" identifier (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);" statement_identifier : (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" identifier = (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" { (expression_statement "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;" (assignment_expression "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = (ulonglong)uVar12;" (assignment_expression "uVar21 = (ulonglong)uVar12" identifier = (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000579dc;" goto statement_identifier ;) })) (if_statement "if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" if (parenthesized_expression "(uVar20 != 0x20)" ( (binary_expression "uVar20 != 0x20" identifier != number_literal) )) (compound_statement "{\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" { (if_statement "if (uVar20 < 0x20) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar20 < 0x20)" ( (binary_expression "uVar20 < 0x20" identifier < number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }" if (parenthesized_expression "(1 < uVar20 - 0x1f01)" ( (binary_expression "1 < uVar20 - 0x1f01" number_literal < (binary_expression "uVar20 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00057ac5;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_28._0_4_ = (uint *)*local_44;" (assignment_expression "local_28._0_4_ = (uint *)*local_44" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_28._4_4_ = uVar12;" (assignment_expression "local_28._4_4_ = uVar12" (field_expression "local_28._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" { (expression_statement "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;" (assignment_expression "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (field_expression "local_28._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_28 >> 0x18" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_28 & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff0000)" ( (binary_expression "(uint)(uint *)local_28 & 0xff0000" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_28 & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff00)" ( (binary_expression "(uint)(uint *)local_28 & 0xff00" (cast_expression "(uint)(uint *)local_28" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_28 << 0x18" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal))) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (labeled_statement "joined_r0x00057e18:\n            uVar22 = uVar8;" statement_identifier : (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;)) (if_statement "if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" { (if_statement "if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" if (parenthesized_expression "(uVar20 == 8)" ( (binary_expression "uVar20 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }" { (labeled_statement "LAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;" statement_identifier : (expression_statement "local_28._0_4_ = (uint *)uVar8;" (assignment_expression "local_28._0_4_ = (uint *)uVar8" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "param_1[0xf] = (int)(uint *)local_28;" (assignment_expression "param_1[0xf] = (int)(uint *)local_28" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" else (compound_statement "{\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" { (expression_statement "uVar21 = local_3c;" (assignment_expression "uVar21 = local_3c" identifier = identifier) ;) (if_statement "if (uVar20 == 0xe) goto LAB_00057d36;" if (parenthesized_expression "(uVar20 == 0xe)" ( (binary_expression "uVar20 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00057d36;" goto statement_identifier ;)) }))) })) }))))) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" if (parenthesized_expression "(uVar20 == 7)" ( (binary_expression "uVar20 == 7" identifier == number_literal) )) (compound_statement "{\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" else (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c._4_4_ = uVar12;" (assignment_expression "local_3c._4_4_ = uVar12" (field_expression "local_3c._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" { (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" identifier . field_identifier) = (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal))) ;) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" statement_identifier : (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;)) (expression_statement "local_28._4_4_ = local_3c._4_4_;" (assignment_expression "local_28._4_4_ = local_3c._4_4_" (field_expression "local_28._4_4_" identifier . field_identifier) = (field_expression "local_3c._4_4_" identifier . field_identifier)) ;) (expression_statement "local_28._0_4_ = (uint *)local_3c;" (assignment_expression "local_28._0_4_ = (uint *)local_3c" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" if (parenthesized_expression "(uVar20 < 8)" ( (binary_expression "uVar20 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" { (if_statement "if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" if (parenthesized_expression "(uVar20 == 4)" ( (binary_expression "uVar20 == 4" identifier == number_literal) )) (compound_statement "{\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }" { (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" else (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_20 = *local_44;" (assignment_expression "local_20 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" { (expression_statement "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;" (assignment_expression "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" identifier = (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8" (binary_expression "local_20 >> 0x18" identifier >> number_literal) | (binary_expression "(local_20 & 0xff0000) >> 8" (parenthesized_expression "(local_20 & 0xff0000)" ( (binary_expression "local_20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_20 & 0xff00) << 8" (parenthesized_expression "(local_20 & 0xff00)" ( (binary_expression "local_20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_20 << 0x18" identifier << number_literal))) ;) })) (expression_statement "local_28._0_4_ = local_44 + 1;" (assignment_expression "local_28._0_4_ = local_44 + 1" (field_expression "local_28._0_4_" identifier . field_identifier) = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (labeled_statement "LAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" statement_identifier : (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) }) (else_clause "else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" else (compound_statement "{\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" { (if_statement "if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" if (parenthesized_expression "(4 < uVar20)" ( (binary_expression "4 < uVar20" number_literal < identifier) )) (compound_statement "{\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" { (if_statement "if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" if (parenthesized_expression "(uVar20 != 5)" ( (binary_expression "uVar20 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" { (if_statement "if (uVar20 != 6) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar20 != 6)" ( (binary_expression "uVar20 != 6" identifier != number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" else (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" { (expression_statement "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" ( (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) | (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" ( (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) >> number_literal)) | (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" ( (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) << number_literal)) | (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00057f30;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_28._0_4_ = (uint *)(uint)uVar7;" (assignment_expression "local_28._0_4_ = (uint *)(uint)uVar7" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uint)uVar7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" if (parenthesized_expression "(uVar20 == 1)" ( (binary_expression "uVar20 == 1" identifier == number_literal) )) (compound_statement "{\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;" if (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 4)" ( (binary_expression "*(int *)(iVar10 + 0x48) != 4" (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000578c9;" goto statement_identifier ;)) (labeled_statement "LAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);" statement_identifier : (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" identifier = (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" else (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar20 = *local_44;" (assignment_expression "uVar20 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" { (expression_statement "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;" (assignment_expression "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" identifier = (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) })) (expression_statement "uVar21 = (ulonglong)uVar20;" (assignment_expression "uVar21 = (ulonglong)uVar20" identifier = (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000578e2:\n              local_3c = uVar21;" statement_identifier : (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" identifier = identifier) ;)) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier = (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" identifier (argument_list "(*param_1,iVar13,iVar19,&local_3c)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_000577b8;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) goto joined_r0x00057be3;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto joined_r0x00057be3;" goto statement_identifier ;)) (goto_statement "goto LAB_00057a16;" goto statement_identifier ;) })) (if_statement "if (uVar20 != 3) {\n              return 0;\n            }" if (parenthesized_expression "(uVar20 != 3)" ( (binary_expression "uVar20 != 3" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" identifier = (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" identifier = (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" if (parenthesized_expression "(pcVar4 == FUN_0003a350)" ( (binary_expression "pcVar4 == FUN_0003a350" identifier == identifier) )) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" { (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" ( (pointer_expression "**(code **)(*piVar3 + 0xe8)" * (pointer_expression "*(code **)(*piVar3 + 0xe8)" * (cast_expression "(code **)(*piVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xe8)" ( (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" else (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" { (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" identifier = (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" { (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier = (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" identifier (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" ( (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_20 = (uint)uVar7;" (assignment_expression "local_20 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) }))) (if_statement "if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" if (parenthesized_expression "((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))" ( (binary_expression "(uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 < 0x32" identifier < number_literal)) ))) )) (compound_statement "{\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" { (labeled_statement "LAB_00057c63:\n            uVar8 = uVar22;" statement_identifier : (expression_statement "uVar8 = uVar22;" (assignment_expression "uVar8 = uVar22" identifier = identifier) ;)) (if_statement "if (uVar2 != 1) goto joined_r0x00057e18;" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x00057e18;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (if_statement "if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" if (parenthesized_expression "(uVar20 == 10)" ( (binary_expression "uVar20 == 10" identifier == number_literal) )) (compound_statement "{\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" { (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_28._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_20 = (uint)(byte)*local_44;" (assignment_expression "local_20 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" identifier = (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(uint *)local_28 + local_20)" ( (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (goto_statement "goto LAB_00057c54;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" if (parenthesized_expression "(uVar20 < 0xb)" ( (binary_expression "uVar20 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" { (if_statement "if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" if (parenthesized_expression "(uVar20 != 8)" ( (binary_expression "uVar20 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" { (if_statement "if (uVar20 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar20 != 9)" ( (binary_expression "uVar20 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00057851:\n            uVar12 = (uint)(byte)*local_44;" statement_identifier : (expression_statement "uVar12 = (uint)(byte)*local_44;" (assignment_expression "uVar12 = (uint)(byte)*local_44" identifier = (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;)) (expression_statement "local_6c = (byte *)((int)local_44 + 1);" (assignment_expression "local_6c = (byte *)((int)local_44 + 1)" identifier = (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" if (parenthesized_expression "((char)(byte)*local_44 < '\0')" ( (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }" { (expression_statement "uVar12 = FUN_00095970(local_6c,&local_40,uVar12);" (assignment_expression "uVar12 = FUN_00095970(local_6c,&local_40,uVar12)" identifier = (call_expression "FUN_00095970(local_6c,&local_40,uVar12)" identifier (argument_list "(local_6c,&local_40,uVar12)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" identifier = identifier) ;) (expression_statement "local_6c = (byte *)((int)local_44 + local_40);" (assignment_expression "local_6c = (byte *)((int)local_44 + local_40)" identifier = (cast_expression "(byte *)((int)local_44 + local_40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_40)" ( (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" else (compound_statement "{\n              local_40 = 1;\n              local_70 = local_44;\n            }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" identifier = identifier) ;) }))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,local_6c);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,local_6c)" identifier = (call_expression "CONCAT44(local_28._4_4_,local_6c)" identifier (argument_list "(local_28._4_4_,local_6c)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_44 = (uint *)((int)local_70 + uVar12 + local_40);" (assignment_expression "local_44 = (uint *)((int)local_70 + uVar12 + local_40)" identifier = (cast_expression "(uint *)((int)local_70 + uVar12 + local_40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar12 + local_40)" ( (binary_expression "(int)local_70 + uVar12 + local_40" (binary_expression "(int)local_70 + uVar12" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "local_20 = uVar12;" (assignment_expression "local_20 = uVar12" identifier = identifier) ;) (goto_statement "goto LAB_00057d6a;" goto statement_identifier ;) })) (expression_statement "local_28._0_4_ = local_44;" (assignment_expression "local_28._0_4_ = local_44" (field_expression "local_28._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_40 = strlen((char *)local_44);" (assignment_expression "local_40 = strlen((char *)local_44)" identifier = (call_expression "strlen((char *)local_44)" identifier (argument_list "((char *)local_44)" ( (cast_expression "(char *)local_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)puVar18 + local_40 + 1);" (assignment_expression "local_44 = (uint *)((int)puVar18 + local_40 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + local_40 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + local_40 + 1)" ( (binary_expression "(int)puVar18 + local_40 + 1" (binary_expression "(int)puVar18 + local_40" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" { (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" if (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 == 0x2007" identifier == number_literal)) ))) )) (compound_statement "{\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" { (expression_statement "param_1[0x12] = (int)puVar18;" (assignment_expression "param_1[0x12] = (int)puVar18" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_00057590;" goto statement_identifier ;) })) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;" if (parenthesized_expression "((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))" ( (binary_expression "(uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" ( (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" identifier = (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" identifier (argument_list "(local_28._4_4_,(uint *)local_28)" ( (field_expression "local_28._4_4_" identifier . field_identifier) , (cast_expression "(uint *)local_28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar2 != 3" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (goto_statement "goto LAB_00057816;" goto statement_identifier ;) })) (if_statement "if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" if (parenthesized_expression "(uVar20 < 0xd)" ( (binary_expression "uVar20 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" { (expression_statement "uVar22 = (ulonglong)(byte)*local_44;" (assignment_expression "uVar22 = (ulonglong)(byte)*local_44" identifier = (binary_expression "(ulonglong)(byte)*local_44" (call_expression "(ulonglong)(byte)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;" statement_identifier : (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar2) goto LAB_00057d79;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_00057d79;" goto statement_identifier ;)) (goto_statement "goto LAB_00057c63;" goto statement_identifier ;) })) (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" identifier = (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (uint)bVar1;" (assignment_expression "uVar12 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }" { (expression_statement "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);" (assignment_expression "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12)" identifier = (call_expression "FUN_00095a30(puVar18,&local_40,uVar12)" identifier (argument_list "(puVar18,&local_40,uVar12)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier )))) ;) (expression_statement "puVar18 = (uint *)((int)local_44 + local_40);" (assignment_expression "puVar18 = (uint *)((int)local_44 + local_40)" identifier = (cast_expression "(uint *)((int)local_44 + local_40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_40)" ( (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" else (compound_statement "{\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" { (expression_statement "uVar22 = (ulonglong)uVar12;" (assignment_expression "uVar22 = (ulonglong)uVar12" identifier = (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" { (expression_statement "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);" (assignment_expression "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80)" identifier = (call_expression "CONCAT44(0xffffffff,uVar12 | 0xffffff80)" identifier (argument_list "(0xffffffff,uVar12 | 0xffffff80)" ( number_literal , (binary_expression "uVar12 | 0xffffff80" identifier | number_literal) )))) ;) })) }))) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" { (labeled_statement "LAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" statement_identifier : (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00057590;" goto statement_identifier ;))) (goto_statement "goto LAB_00057b31;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;" if (parenthesized_expression "(puVar18 == (uint *)param_1[0xd])" ( (binary_expression "puVar18 == (uint *)param_1[0xd]" identifier == (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00057700;" goto statement_identifier ;)) (labeled_statement "LAB_0005759c:\n        *puVar18 = local_30;" statement_identifier : (expression_statement "*puVar18 = local_30;" (assignment_expression "*puVar18 = local_30" (pointer_expression "*puVar18" * identifier) = identifier) ;)) (expression_statement "puVar18[1] = local_2c;" (assignment_expression "puVar18[1] = local_2c" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ulonglong *)(puVar18 + 2) = uVar22;" (assignment_expression "*(ulonglong *)(puVar18 + 2) = uVar22" (pointer_expression "*(ulonglong *)(puVar18 + 2)" * (cast_expression "(ulonglong *)(puVar18 + 2)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18[4] = local_20;" (assignment_expression "puVar18[4] = local_20" (subscript_expression "puVar18[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = (int)(puVar18 + 5);" (assignment_expression "param_1[0xc] = (int)(puVar18 + 5)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)(puVar18 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + 5)" ( (binary_expression "puVar18 + 5" identifier + number_literal) )))) ;) (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" identifier = identifier) ;) }))) (expression_statement "local_74 = local_74 + 8;" (assignment_expression "local_74 = local_74 + 8" identifier = (binary_expression "local_74 + 8" identifier + number_literal)) ;) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(local_74 != iVar15)" ( (binary_expression "local_74 != iVar15" identifier != identifier) )) ;) }))) (if_statement "if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" { (expression_statement "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0)" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children",0)" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") , number_literal ))) ;) })) (labeled_statement "LAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;" statement_identifier : (expression_statement "uVar20 = (int)local_44 - iVar14;" (assignment_expression "uVar20 = (int)local_44 - iVar14" identifier = (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;)) (expression_statement "iVar14 = uVar20 + param_1[2];" (assignment_expression "iVar14 = uVar20 + param_1[2]" identifier = (binary_expression "uVar20 + param_1[2]" identifier + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);" (assignment_expression "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" identifier = (binary_expression "((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" (binary_expression "((int)uVar20 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar20 >> 0x1f)" ( (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (subscript_expression "param_1[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar20,param_1[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,param_1[2])" identifier (argument_list "(uVar20,param_1[2])" ( identifier , (subscript_expression "param_1[2]" identifier [ number_literal ]) )))))) ;) (if_statement "if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" if (parenthesized_expression "((*(byte *)(iVar13 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 4) & 1)" ( (binary_expression "*(byte *)(iVar13 + 4) & 1" (pointer_expression "*(byte *)(iVar13 + 4)" * (cast_expression "(byte *)(iVar13 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }" { (expression_statement "param_1[8] = iVar14;" (assignment_expression "param_1[8] = iVar14" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = iVar15;" (assignment_expression "param_1[9] = iVar15" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" else (compound_statement "{\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" { (expression_statement "param_1[6] = iVar14;" (assignment_expression "param_1[6] = iVar14" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = iVar15;" (assignment_expression "param_1[7] = iVar15" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ])) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )) * LIT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })))))))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT))) ))) )) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) })) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (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) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT | LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000573e0(int *param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_000573e0") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  void *__src;\n  uint uVar2;\n  int *piVar3;\n  code *pcVar4;\n  uint uVar5;\n  void *pvVar6;\n  ushort uVar7;\n  ulonglong uVar8;\n  char cVar9;\n  int iVar10;\n  uint uVar11;\n  size_t __n;\n  void *__dest;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  void *pvVar17;\n  uint *puVar18;\n  int iVar19;\n  uint uVar20;\n  ulonglong uVar21;\n  ulonglong uVar22;\n  int local_74;\n  uint *local_70;\n  byte *local_6c;\n  uint *local_44;\n  size_t local_40;\n  undefined8 local_3c;\n  uint local_30;\n  uint local_2c;\n  undefined8 local_28;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x573eb;\n  iVar13 = param_1[10];\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }\n  iVar15 = *param_1;\n  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);\n  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }\n  if (iVar14 == 0) {\n    return 0;\n  }\n  local_44 = (uint *)(param_1[4] + iVar14);\n  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);\n  uVar20 = iVar15 >> 3;\n  if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }\n  __src = (void *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }\n  if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }\nLAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;\n  iVar14 = uVar20 + param_1[2];\n  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);\n  if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "void *__src;" (primitive_type "void") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "void *pvVar6;" (primitive_type "void") (pointer_declarator "*pvVar6" (* "*") (identifier "pvVar6")) (; ";")) (declaration "ushort uVar7;" (type_identifier "ushort") (identifier "uVar7") (; ";")) (declaration "ulonglong uVar8;" (type_identifier "ulonglong") (identifier "uVar8") (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "void *pvVar17;" (primitive_type "void") (pointer_declarator "*pvVar17" (* "*") (identifier "pvVar17")) (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "ulonglong uVar21;" (type_identifier "ulonglong") (identifier "uVar21") (; ";")) (declaration "ulonglong uVar22;" (type_identifier "ulonglong") (identifier "uVar22") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "uint *local_70;" (type_identifier "uint") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "byte *local_6c;" (type_identifier "byte") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint *local_44;" (type_identifier "uint") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "size_t local_40;" (primitive_type "size_t") (identifier "local_40") (; ";")) (declaration "undefined8 local_3c;" (type_identifier "undefined8") (identifier "local_3c") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (declaration "uint local_20;" (type_identifier "uint") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x573eb;" (assignment_expression "uStack_14 = 0x573eb" (identifier "uStack_14") (= "=") (number_literal "0x573eb")) (; ";")) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" (identifier "iVar13") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" (identifier "FUN_00069d00") (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3)" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x2a9") (, ",") (string_literal ""read_attributes"" (" """) (string_content "read_attributes") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = *param_1;" (assignment_expression "iVar15 = *param_1" (identifier "iVar15") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);" (assignment_expression "iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" (identifier "iVar14") (= "=") (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34)" (binary_expression "*(int *)(iVar15 + 0x2c) + param_1[2]" (pointer_expression "*(int *)(iVar15 + 0x2c)" (* "*") (cast_expression "(int *)(iVar15 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2c)" (( "(") (binary_expression "iVar15 + 0x2c" (identifier "iVar15") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (+ "+") (pointer_expression "*(int *)(iVar15 + 0x34)" (* "*") (cast_expression "(int *)(iVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))))) (; ";")) (if_statement "if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U) {\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" (if "if") (parenthesized_expression "((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U)" (( "(") (binary_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <\n      iVar14 + 1U" (call_expression "(uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c))" (( "(") (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)" (binary_expression "*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c)" (pointer_expression "*(int *)(iVar15 + 0x34)" (* "*") (cast_expression "(int *)(iVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar15 + 0x3c)" (* "*") (cast_expression "(int *)(iVar15 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x3c)" (( "(") (binary_expression "iVar15 + 0x3c" (identifier "iVar15") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (pointer_expression "*(int *)(iVar15 + 0x2c)" (* "*") (cast_expression "(int *)(iVar15 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2c)" (( "(") (binary_expression "iVar15 + 0x2c" (identifier "iVar15") (+ "+") (number_literal "0x2c")) () ")"))))) () ")"))) (< "<") (binary_expression "iVar14 + 1U" (identifier "iVar14") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n    FUN_00056bf0(iVar15);\n    return 0;\n  }" ({ "{") (expression_statement "FUN_00056bf0(iVar15);" (call_expression "FUN_00056bf0(iVar15)" (identifier "FUN_00056bf0") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (iVar14 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_44 = (uint *)(param_1[4] + iVar14);" (assignment_expression "local_44 = (uint *)(param_1[4] + iVar14)" (identifier "local_44") (= "=") (cast_expression "(uint *)(param_1[4] + iVar14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[4] + iVar14)" (( "(") (binary_expression "param_1[4] + iVar14" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (+ "+") (identifier "iVar14")) () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);" (assignment_expression "iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" (identifier "iVar15") (= "=") (binary_expression "*(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8)" (pointer_expression "*(int *)(iVar13 + 0xc)" (* "*") (cast_expression "(int *)(iVar13 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xc)" (( "(") (binary_expression "iVar13 + 0xc" (identifier "iVar13") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar20 = iVar15 >> 3;" (assignment_expression "uVar20 = iVar15 >> 3" (identifier "uVar20") (= "=") (binary_expression "iVar15 >> 3" (identifier "iVar15") (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (0xccccccc < uVar20) {\n                    \n    FUN_0022c7a0("vector::reserve");\n  }" (if "if") (parenthesized_expression "(0xccccccc < uVar20)" (( "(") (binary_expression "0xccccccc < uVar20" (number_literal "0xccccccc") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n                    \n    FUN_0022c7a0("vector::reserve");\n  }" ({ "{") (expression_statement "FUN_0022c7a0("vector::reserve");" (call_expression "FUN_0022c7a0("vector::reserve")" (identifier "FUN_0022c7a0") (argument_list "("vector::reserve")" (( "(") (string_literal ""vector::reserve"" (" """) (string_content "vector::reserve") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "__src = (void *)param_1[0xb];" (assignment_expression "__src = (void *)param_1[0xb]" (identifier "__src") (= "=") (cast_expression "(void *)param_1[0xb]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (if_statement "if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }\n  else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" (if "if") (parenthesized_expression "((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20)" (( "(") (binary_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20" (call_expression "(uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_1[0xd] - (int)__src >> 2) * -0x33333333)" (( "(") (binary_expression "(param_1[0xd] - (int)__src >> 2) * -0x33333333" (parenthesized_expression "(param_1[0xd] - (int)__src >> 2)" (( "(") (binary_expression "param_1[0xd] - (int)__src >> 2" (binary_expression "param_1[0xd] - (int)__src" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (- "-") (cast_expression "(int)__src" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__src"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x33333333")) () ")"))) (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n    pvVar6 = (void *)param_1[0xc];\n    __n = (int)pvVar6 - (int)__src;\n    if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }\n    if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }\n    if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }\n    param_1[0xb] = (int)__dest;\n    param_1[0xc] = __n + (int)__dest;\n    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);\n    iVar13 = param_1[10];\n    if (uVar20 != 0) goto LAB_00057480;\n  }" ({ "{") (expression_statement "pvVar6 = (void *)param_1[0xc];" (assignment_expression "pvVar6 = (void *)param_1[0xc]" (identifier "pvVar6") (= "=") (cast_expression "(void *)param_1[0xc]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "__n = (int)pvVar6 - (int)__src;" (assignment_expression "__n = (int)pvVar6 - (int)__src" (identifier "__n") (= "=") (binary_expression "(int)pvVar6 - (int)__src" (cast_expression "(int)pvVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar6")) (- "-") (cast_expression "(int)__src" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__src")))) (; ";")) (if_statement "if (uVar20 == 0) {\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }\n    else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar17 = __src;\n    }" ({ "{") (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" (identifier "__dest") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvVar17 = __src;" (assignment_expression "pvVar17 = __src" (identifier "pvVar17") (= "=") (identifier "__src")) (; ";")) (} "}")) (else_clause "else {\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" (else "else") (compound_statement "{\n      __dest = (void *)FUN_001e5200(uVar20 * 0x14);\n      pvVar17 = (void *)param_1[0xb];\n    }" ({ "{") (expression_statement "__dest = (void *)FUN_001e5200(uVar20 * 0x14);" (assignment_expression "__dest = (void *)FUN_001e5200(uVar20 * 0x14)" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_001e5200(uVar20 * 0x14)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(uVar20 * 0x14)" (identifier "FUN_001e5200") (argument_list "(uVar20 * 0x14)" (( "(") (binary_expression "uVar20 * 0x14" (identifier "uVar20") (* "*") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pvVar17 = (void *)param_1[0xb];" (assignment_expression "pvVar17 = (void *)param_1[0xb]" (identifier "pvVar17") (= "=") (cast_expression "(void *)param_1[0xb]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (} "}")))) (if_statement "if (__src != pvVar6) {\n      memmove(__dest,__src,__n);\n    }" (if "if") (parenthesized_expression "(__src != pvVar6)" (( "(") (binary_expression "__src != pvVar6" (identifier "__src") (!= "!=") (identifier "pvVar6")) () ")")) (compound_statement "{\n      memmove(__dest,__src,__n);\n    }" ({ "{") (expression_statement "memmove(__dest,__src,__n);" (call_expression "memmove(__dest,__src,__n)" (identifier "memmove") (argument_list "(__dest,__src,__n)" (( "(") (identifier "__dest") (, ",") (identifier "__src") (, ",") (identifier "__n") () ")"))) (; ";")) (} "}"))) (if_statement "if (pvVar17 != (void *)0x0) {\n      FUN_001e6db0(pvVar17);\n    }" (if "if") (parenthesized_expression "(pvVar17 != (void *)0x0)" (( "(") (binary_expression "pvVar17 != (void *)0x0" (identifier "pvVar17") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001e6db0(pvVar17);\n    }" ({ "{") (expression_statement "FUN_001e6db0(pvVar17);" (call_expression "FUN_001e6db0(pvVar17)" (identifier "FUN_001e6db0") (argument_list "(pvVar17)" (( "(") (identifier "pvVar17") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[0xb] = (int)__dest;" (assignment_expression "param_1[0xb] = (int)__dest" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) (; ";")) (expression_statement "param_1[0xc] = __n + (int)__dest;" (assignment_expression "param_1[0xc] = __n + (int)__dest" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "__n + (int)__dest" (identifier "__n") (+ "+") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest")))) (; ";")) (expression_statement "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);" (assignment_expression "param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest)" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int)(uVar20 * 0x14 + (int)__dest)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar20 * 0x14 + (int)__dest)" (( "(") (binary_expression "uVar20 * 0x14 + (int)__dest" (binary_expression "uVar20 * 0x14" (identifier "uVar20") (* "*") (number_literal "0x14")) (+ "+") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) () ")")))) (; ";")) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" (identifier "iVar13") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (uVar20 != 0) goto LAB_00057480;" (if "if") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00057480;" (goto "goto") (statement_identifier "LAB_00057480") (; ";"))) (} "}")) (else_clause "else {\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" (else "else") (compound_statement "{\n    if (uVar20 == 0) goto LAB_000575e3;\nLAB_00057480:\n    local_74 = 0;\n    do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);\n  }" ({ "{") (if_statement "if (uVar20 == 0) goto LAB_000575e3;" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000575e3;" (goto "goto") (statement_identifier "LAB_000575e3") (; ";"))) (labeled_statement "LAB_00057480:\n    local_74 = 0;" (statement_identifier "LAB_00057480") (: ":") (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    } while (local_74 != iVar15);" (do "do") (compound_statement "{\n      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));\n      uVar20 = puVar18[1];\n      uVar2 = *puVar18;\n      uVar21 = local_28;\n      if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }\n      puVar18 = local_44;\n      local_28._4_4_ = (uint)(uVar21 >> 0x20);\n      uVar12 = (int)local_44 - iVar14;\n      iVar13 = uVar12 + param_1[2];\n      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);\n      local_20 = 0;\n      local_30 = uVar2;\n      local_2c = uVar20;\n      local_28 = uVar21;\n      if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }\n      local_74 = local_74 + 8;\n      iVar13 = param_1[10];\n    }" ({ "{") (expression_statement "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));" (assignment_expression "puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8))" (identifier "puVar18") (= "=") (cast_expression "(uint *)(local_74 + *(int *)(iVar13 + 8))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74 + *(int *)(iVar13 + 8))" (( "(") (binary_expression "local_74 + *(int *)(iVar13 + 8)" (identifier "local_74") (+ "+") (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")"))))) () ")")))) (; ";")) (expression_statement "uVar20 = puVar18[1];" (assignment_expression "uVar20 = puVar18[1]" (identifier "uVar20") (= "=") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar2 = *puVar18;" (assignment_expression "uVar2 = *puVar18" (identifier "uVar2") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" (identifier "uVar21") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (uVar20 == 0x16) {\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" (if "if") (parenthesized_expression "(uVar20 == 0x16)" (( "(") (binary_expression "uVar20 == 0x16" (identifier "uVar20") (== "==") (number_literal "0x16")) () ")")) (compound_statement "{\n        uVar20 = (uint)(byte)*local_44;\n        local_70 = (uint *)((int)local_44 + 1);\n        if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }\n        local_44 = local_70;\n      }" ({ "{") (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" (identifier "uVar20") (= "=") (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44"))) (; ";")) (expression_statement "local_70 = (uint *)((int)local_44 + 1);" (assignment_expression "local_70 = (uint *)((int)local_44 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)(byte)*local_44 < '\0') {\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }\n        else {\n          local_40 = 1;\n        }" (if "if") (parenthesized_expression "((char)(byte)*local_44 < '\0')" (( "(") (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar20 = FUN_00095970(local_70,&local_40,uVar20);\n          local_70 = (uint *)(local_40 + (int)local_44);\n          uVar21 = local_28;\n        }" ({ "{") (expression_statement "uVar20 = FUN_00095970(local_70,&local_40,uVar20);" (assignment_expression "uVar20 = FUN_00095970(local_70,&local_40,uVar20)" (identifier "uVar20") (= "=") (call_expression "FUN_00095970(local_70,&local_40,uVar20)" (identifier "FUN_00095970") (argument_list "(local_70,&local_40,uVar20)" (( "(") (identifier "local_70") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "local_70 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_70 = (uint *)(local_40 + (int)local_44)" (identifier "local_70") (= "=") (cast_expression "(uint *)(local_40 + (int)local_44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + (int)local_44)" (( "(") (binary_expression "local_40 + (int)local_44" (identifier "local_40") (+ "+") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")))) (; ";")) (expression_statement "uVar21 = local_28;" (assignment_expression "uVar21 = local_28" (identifier "uVar21") (= "=") (identifier "local_28")) (; ";")) (} "}")) (else_clause "else {\n          local_40 = 1;\n        }" (else "else") (compound_statement "{\n          local_40 = 1;\n        }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "local_44 = local_70;" (assignment_expression "local_44 = local_70" (identifier "local_44") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (expression_statement "puVar18 = local_44;" (assignment_expression "puVar18 = local_44" (identifier "puVar18") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_28._4_4_ = (uint)(uVar21 >> 0x20);" (assignment_expression "local_28._4_4_ = (uint)(uVar21 >> 0x20)" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "(uint)(uVar21 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar21 >> 0x20)" (( "(") (binary_expression "uVar21 >> 0x20" (identifier "uVar21") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar12 = (int)local_44 - iVar14;" (assignment_expression "uVar12 = (int)local_44 - iVar14" (identifier "uVar12") (= "=") (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (- "-") (identifier "iVar14"))) (; ";")) (expression_statement "iVar13 = uVar12 + param_1[2];" (assignment_expression "iVar13 = uVar12 + param_1[2]" (identifier "iVar13") (= "=") (binary_expression "uVar12 + param_1[2]" (identifier "uVar12") (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);" (assignment_expression "iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" (identifier "iVar19") (= "=") (binary_expression "((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2])" (binary_expression "((int)uVar12 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar12 >> 0x1f)" (( "(") (binary_expression "(int)uVar12 >> 0x1f" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,param_1[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,param_1[2])" (identifier "CARRY4") (argument_list "(uVar12,param_1[2])" (( "(") (identifier "uVar12") (, ",") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) () ")")))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = uVar2;" (assignment_expression "local_30 = uVar2" (identifier "local_30") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "local_2c = uVar20;" (assignment_expression "local_2c = uVar20" (identifier "local_2c") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "local_28 = uVar21;" (assignment_expression "local_28 = uVar21" (identifier "local_28") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (uVar20 == 0xe) {\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }\n      else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" (if "if") (parenthesized_expression "(uVar20 == 0xe)" (( "(") (binary_expression "uVar20 == 0xe" (identifier "uVar20") (== "==") (number_literal "0xe")) () ")")) (compound_statement "{\n        piVar3 = *(int **)(*param_1 + 8);\n        iVar10 = *piVar3;\n        pcVar4 = *(code **)(iVar10 + 0xc);\n        if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }\n        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }\nLAB_00057590:\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;\nLAB_00057700:\n        local_28 = uVar22;\n        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);\n      }" ({ "{") (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar10 = *piVar3;" (assignment_expression "iVar10 = *piVar3" (identifier "iVar10") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "pcVar4 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar4 = *(code **)(iVar10 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(iVar10 + 0xc)" (* "*") (cast_expression "(code **)(iVar10 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*param_1 + 0x44) == 4) {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }\n        else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" (if "if") (parenthesized_expression "(*(int *)(*param_1 + 0x44) == 4)" (( "(") (binary_expression "*(int *)(*param_1 + 0x44) == 4" (pointer_expression "*(int *)(*param_1 + 0x44)" (* "*") (cast_expression "(int *)(*param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x44)" (( "(") (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          local_3c._4_4_ = 0;\n          if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }\n          local_44 = local_44 + 1;\n        }" ({ "{") (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" (( "(") (pointer_expression "**(code **)(iVar10 + 0xe8)" (* "*") (pointer_expression "*(code **)(iVar10 + 0xe8)" (* "*") (cast_expression "(code **)(iVar10 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (else "else") (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar9 != '\0') {\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);\n          }" ({ "{") (expression_statement "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18)" (( "(") (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8\n                          | ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" (else "else") (compound_statement "{\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar20 = local_44[1];\n          local_3c._4_4_ = uVar20;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }\n          local_44 = local_44 + 2;\n        }" ({ "{") (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(iVar10 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(iVar10 + 0xe8))" (( "(") (pointer_expression "**(code **)(iVar10 + 0xe8)" (* "*") (pointer_expression "*(code **)(iVar10 + 0xe8)" (* "*") (cast_expression "(code **)(iVar10 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (else "else") (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "uVar20 = local_44[1];" (assignment_expression "uVar20 = local_44[1]" (identifier "uVar20") (= "=") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_3c._4_4_ = uVar20;" (assignment_expression "local_3c._4_4_ = uVar20" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "uVar20")) (; ";")) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);\n          }" ({ "{") (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18)" (( "(") (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" (identifier "uVar20") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" (( "(") (binary_expression "uVar20 & 0xff0000" (identifier "uVar20") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" (( "(") (binary_expression "uVar20 & 0xff00" (identifier "uVar20") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar20 << 0x18" (identifier "uVar20") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "local_20") (= "=") (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "FUN_00056b30") (argument_list "(*param_1,iVar13,iVar19,&local_3c)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar13") (, ",") (identifier "iVar19") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar21") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar8") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "local_3c") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (compound_statement "{\n          if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }\n        }" ({ "{") (if_statement "if (uVar2 < 0x32) {\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }\n          else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }\n          }" ({ "{") (expression_statement "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "local_3c") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if ((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" (if "if") (parenthesized_expression "((uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3))" (( "(") (binary_expression "(uVar2 != 1) &&\n               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)" (( "(") (comma_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "local_3c") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (, ",") (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (, ",") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")))) () ")"))) () ")")) (compound_statement "{\nLAB_00057d36:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x10) = uVar8;\n              local_3c = uVar21;\n              uVar22 = uVar8;\n            }" ({ "{") (labeled_statement "LAB_00057d36:\n              param_1[0x15] = local_20;" (statement_identifier "LAB_00057d36") (: ":") (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "local_20")) (; ";"))) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar8;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar8" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x10)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" (identifier "local_3c") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" (identifier "uVar22") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" (else "else") (compound_statement "{\n            local_3c = uVar21;\n            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }\n          }" ({ "{") (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" (identifier "local_3c") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar21") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" (if "if") (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)" (( "(") (comma_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),\n               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (, ",") (comma_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007" (assignment_expression "uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "uVar21") (= "=") (call_expression "CONCAT44(local_3c._4_4_,(uint *)local_3c)" (identifier "CONCAT44") (argument_list "(local_3c._4_4_,(uint *)local_3c)" (( "(") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) () ")")))) (, ",") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")))) () ")"))) () ")")) (compound_statement "{\nLAB_00057b8d:\n              param_1[0x15] = local_20;\n              *(ulonglong *)(param_1 + 0x13) = uVar21;\n              uVar22 = uVar21;\n            }" ({ "{") (labeled_statement "LAB_00057b8d:\n              param_1[0x15] = local_20;" (statement_identifier "LAB_00057b8d") (: ":") (expression_statement "param_1[0x15] = local_20;" (assignment_expression "param_1[0x15] = local_20" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "local_20")) (; ";"))) (expression_statement "*(ulonglong *)(param_1 + 0x13) = uVar21;" (assignment_expression "*(ulonglong *)(param_1 + 0x13) = uVar21" (pointer_expression "*(ulonglong *)(param_1 + 0x13)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x13)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "uVar22 = uVar21;" (assignment_expression "uVar22 = uVar21" (identifier "uVar22") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (labeled_statement "LAB_00057590:\n        puVar18 = (uint *)param_1[0xc];" (statement_identifier "LAB_00057590") (: ":") (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" (identifier "puVar18") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";"))) (if_statement "if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;" (if "if") (parenthesized_expression "(puVar18 != (uint *)param_1[0xd])" (( "(") (binary_expression "puVar18 != (uint *)param_1[0xd]" (identifier "puVar18") (!= "!=") (cast_expression "(uint *)param_1[0xd]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (goto_statement "goto LAB_0005759c;" (goto "goto") (statement_identifier "LAB_0005759c") (; ";"))) (labeled_statement "LAB_00057700:\n        local_28 = uVar22;" (statement_identifier "LAB_00057700") (: ":") (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" (identifier "local_28") (= "=") (identifier "uVar22")) (; ";"))) (expression_statement "FUN_0005b220(param_1 + 0xb,puVar18,&local_30);" (call_expression "FUN_0005b220(param_1 + 0xb,puVar18,&local_30)" (identifier "FUN_0005b220") (argument_list "(param_1 + 0xb,puVar18,&local_30)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) (, ",") (identifier "puVar18") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" (else "else") (compound_statement "{\n        if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }\n        if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }\n        if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }\n        if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }\n        bVar1 = (byte)*local_44;\n        uVar12 = (uint)bVar1;\n        puVar18 = (uint *)((int)local_44 + 1);\n        if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }\n        local_44 = puVar18;\n        if (uVar2 == 0x31) goto LAB_00057590;\n        if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }\n        puVar18 = (uint *)param_1[0xc];\n        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;\nLAB_0005759c:\n        *puVar18 = local_30;\n        puVar18[1] = local_2c;\n        *(ulonglong *)(puVar18 + 2) = uVar22;\n        puVar18[4] = local_20;\n        param_1[0xc] = (int)(puVar18 + 5);\n        local_28 = uVar22;\n      }" ({ "{") (if_statement "if (0xe < uVar20) {\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" (if "if") (parenthesized_expression "(0xe < uVar20)" (( "(") (binary_expression "0xe < uVar20" (number_literal "0xe") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n          if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }\n          goto LAB_00057590;\n        }" ({ "{") (if_statement "if (uVar20 == 0x15) {\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }\n          else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(uVar20 == 0x15)" (( "(") (binary_expression "uVar20 == 0x15" (identifier "uVar20") (== "==") (number_literal "0x15")) () ")")) (compound_statement "{\n            bVar1 = (byte)*local_44;\n            if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }\njoined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }\n          }" ({ "{") (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44"))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }\n            else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" (if "if") (parenthesized_expression "((char)bVar1 < '\0')" (( "(") (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n              local_44 = (uint *)(local_40 + (int)local_44);\n            }" ({ "{") (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (identifier "uVar22") (= "=") (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (identifier "FUN_00095970") (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (( "(") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" (identifier "local_44") (= "=") (cast_expression "(uint *)(local_40 + (int)local_44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + (int)local_44)" (( "(") (binary_expression "local_40 + (int)local_44" (identifier "local_40") (+ "+") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" (else "else") (compound_statement "{\n              local_40 = 1;\n              uVar22 = (ulonglong)(uint)bVar1;\n              local_44 = (uint *)((int)local_44 + 1);\n            }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)(uint)bVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (labeled_statement "joined_r0x00057a0a:\n            if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (statement_identifier "joined_r0x00057a0a") (: ":") (if_statement "if (uVar2 == 0x31) {\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }\n            else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (compound_statement "{\nLAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;\n            }" ({ "{") (labeled_statement "LAB_000577b8:\n              *(ulonglong *)(param_1 + 0x18) = uVar22;" (statement_identifier "LAB_000577b8") (: ":") (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x18)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar22")) (; ";"))) (} "}")) (else_clause "else if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (else "else") (if_statement "if (uVar2 < 0x32) {\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }\n            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\nLAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }\n            }" ({ "{") (labeled_statement "LAB_00057a16:\n              if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" (statement_identifier "LAB_00057a16") (: ":") (if_statement "if ((uVar2 == 1) && (local_20 == 0)) {\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" (if "if") (parenthesized_expression "((uVar2 == 1) && (local_20 == 0))" (( "(") (binary_expression "(uVar2 == 1) && (local_20 == 0)" (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_20 == 0)" (( "(") (binary_expression "local_20 == 0" (identifier "local_20") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                *(ulonglong *)(param_1 + 8) = uVar22;\n              }" ({ "{") (expression_statement "*(ulonglong *)(param_1 + 8) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 8)" (* "*") (cast_expression "(ulonglong *)(param_1 + 8)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (} "}")))) (} "}")) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (else "else") (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }\n            else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (if "if") (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x2007)" (( "(") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")) () ")"))) () ")")) (compound_statement "{\nLAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;\n              if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }\n            }" ({ "{") (labeled_statement "LAB_00057b31:\n              local_28._0_4_ = (uint *)uVar22;" (statement_identifier "LAB_00057b31") (: ":") (expression_statement "local_28._0_4_ = (uint *)uVar22;" (assignment_expression "local_28._0_4_ = (uint *)uVar22" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)uVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar22"))) (; ";"))) (if_statement "if (uVar20 == 8) {\n                param_1[0x12] = (int)(uint *)local_28;\n              }\n              else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" (if "if") (parenthesized_expression "(uVar20 == 8)" (( "(") (binary_expression "uVar20 == 8" (identifier "uVar20") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                param_1[0x12] = (int)(uint *)local_28;\n              }" ({ "{") (expression_statement "param_1[0x12] = (int)(uint *)local_28;" (assignment_expression "param_1[0x12] = (int)(uint *)local_28" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")))) (; ";")) (} "}")) (else_clause "else {\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" (else "else") (compound_statement "{\n                uVar21 = uVar22;\n                if (uVar20 == 0xe) goto LAB_00057b8d;\n              }" ({ "{") (expression_statement "uVar21 = uVar22;" (assignment_expression "uVar21 = uVar22" (identifier "uVar21") (= "=") (identifier "uVar22")) (; ";")) (if_statement "if (uVar20 == 0xe) goto LAB_00057b8d;" (if "if") (parenthesized_expression "(uVar20 == 0xe)" (( "(") (binary_expression "uVar20 == 0xe" (identifier "uVar20") (== "==") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_00057b8d;" (goto "goto") (statement_identifier "LAB_00057b8d") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" (else "else") (compound_statement "{\njoined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }\n            }" ({ "{") (labeled_statement "joined_r0x00057934:\n              if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" (statement_identifier "joined_r0x00057934") (: ":") (if_statement "if (uVar2 == 0x47) {\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" (if "if") (parenthesized_expression "(uVar2 == 0x47)" (( "(") (binary_expression "uVar2 == 0x47" (identifier "uVar2") (== "==") (number_literal "0x47")) () ")")) (compound_statement "{\n                *(ulonglong *)(param_1 + 0x16) = uVar22;\n              }" ({ "{") (expression_statement "*(ulonglong *)(param_1 + 0x16) = uVar22;" (assignment_expression "*(ulonglong *)(param_1 + 0x16) = uVar22" (pointer_expression "*(ulonglong *)(param_1 + 0x16)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x16)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16)" (( "(") (binary_expression "param_1 + 0x16" (identifier "param_1") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (} "}")))) (} "}"))))))))) (} "}")) (else_clause "else if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" (else "else") (if_statement "if (uVar20 < 0x16) {\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }\n          else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(uVar20 < 0x16)" (( "(") (binary_expression "uVar20 < 0x16" (identifier "uVar20") (< "<") (number_literal "0x16")) () ")")) (compound_statement "{\n            if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }\n            puVar18 = (uint *)((int)local_44 + 1);\n            uVar20 = (uint)(byte)*local_44;\n            uVar22 = (ulonglong)uVar20;\n            local_44 = puVar18;\n            if (uVar2 == 0x31) goto LAB_000577b8;\n            uVar22 = (ulonglong)uVar20;\n            if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }\n          }" ({ "{") (if_statement "if (uVar20 != 0x11) {\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" (if "if") (parenthesized_expression "(uVar20 != 0x11)" (( "(") (binary_expression "uVar20 != 0x11" (identifier "uVar20") (!= "!=") (number_literal "0x11")) () ")")) (compound_statement "{\n              if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }\n              if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }\n              if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar12 = *local_44;\n              uVar5 = local_44[1];\n              uVar11 = uVar5;\n              if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }\n              uVar21 = CONCAT44(uVar11,uVar12);\n              local_44 = local_44 + 2;\nLAB_000579dc:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              goto joined_r0x00057a0a;\n            }" ({ "{") (if_statement "if (uVar20 < 0x12) {\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" (if "if") (parenthesized_expression "(uVar20 < 0x12)" (( "(") (binary_expression "uVar20 < 0x12" (identifier "uVar20") (< "<") (number_literal "0x12")) () ")")) (compound_statement "{\n                if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }\nLAB_00057ac5:\n                bVar1 = (byte)*local_44;\n                if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }\n                goto LAB_00057d6a;\n              }" ({ "{") (if_statement "if (uVar20 != 0xf) {\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" (if "if") (parenthesized_expression "(uVar20 != 0xf)" (( "(") (binary_expression "uVar20 != 0xf" (identifier "uVar20") (!= "!=") (number_literal "0xf")) () ")")) (compound_statement "{\n                  if (uVar20 != 0x10) {\n                    return 0;\n                  }\n                  iVar10 = *param_1;\n                  iVar16 = *(int *)(iVar10 + 0x48);\n                  if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }\n                  if (iVar16 == 4) goto LAB_00057e35;\nLAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000578e2;\n                }" ({ "{") (if_statement "if (uVar20 != 0x10) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(uVar20 != 0x10)" (( "(") (binary_expression "uVar20 != 0x10" (identifier "uVar20") (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar16 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x48)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar10 + 0x48)" (* "*") (cast_expression "(int *)(iVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (2 < *(uint *)(iVar10 + 0x4c)) {\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" (if "if") (parenthesized_expression "(2 < *(uint *)(iVar10 + 0x4c))" (( "(") (binary_expression "2 < *(uint *)(iVar10 + 0x4c)" (number_literal "2") (< "<") (pointer_expression "*(uint *)(iVar10 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar10 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (compound_statement "{\n                    iVar16 = *(int *)(iVar10 + 0x44);\n                  }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar10 + 0x44);" (assignment_expression "iVar16 = *(int *)(iVar10 + 0x44)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar10 + 0x44)" (* "*") (cast_expression "(int *)(iVar10 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x44)" (( "(") (binary_expression "iVar10 + 0x44" (identifier "iVar10") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar16 == 4) goto LAB_00057e35;" (if "if") (parenthesized_expression "(iVar16 == 4)" (( "(") (binary_expression "iVar16 == 4" (identifier "iVar16") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00057e35;" (goto "goto") (statement_identifier "LAB_00057e35") (; ";"))) (labeled_statement "LAB_000578c9:\n                  uVar21 = FUN_0005b150(iVar10,&local_44);" (statement_identifier "LAB_000578c9") (: ":") (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" (identifier "uVar21") (= "=") (call_expression "FUN_0005b150(iVar10,&local_44)" (identifier "FUN_0005b150") (argument_list "(iVar10,&local_44)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";"))) (goto_statement "goto LAB_000578e2;" (goto "goto") (statement_identifier "LAB_000578e2") (; ";")) (} "}"))) (labeled_statement "LAB_00057ac5:\n                bVar1 = (byte)*local_44;" (statement_identifier "LAB_00057ac5") (: ":") (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44"))) (; ";"))) (if_statement "if ((char)bVar1 < '\0') {\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }\n                else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" (if "if") (parenthesized_expression "((char)bVar1 < '\0')" (( "(") (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);\n                  local_44 = (uint *)(local_40 + (int)local_44);\n                }" ({ "{") (expression_statement "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);" (assignment_expression "uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (identifier "uVar22") (= "=") (call_expression "FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (identifier "FUN_00095970") (argument_list "((uint *)((int)local_44 + 1),&local_40,(uint)bVar1)" (( "(") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)(local_40 + (int)local_44);" (assignment_expression "local_44 = (uint *)(local_40 + (int)local_44)" (identifier "local_44") (= "=") (cast_expression "(uint *)(local_40 + (int)local_44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + (int)local_44)" (( "(") (binary_expression "local_40 + (int)local_44" (identifier "local_40") (+ "+") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" (else "else") (compound_statement "{\n                  local_40 = 1;\n                  uVar22 = (ulonglong)(uint)bVar1;\n                  local_44 = (uint *)((int)local_44 + 1);\n                }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar22 = (ulonglong)(uint)bVar1;" (assignment_expression "uVar22 = (ulonglong)(uint)bVar1" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)(uint)bVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_00057d6a;" (goto "goto") (statement_identifier "LAB_00057d6a") (; ";")) (} "}"))) (if_statement "if (uVar20 == 0x13) {\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" (if "if") (parenthesized_expression "(uVar20 == 0x13)" (( "(") (binary_expression "uVar20 == 0x13" (identifier "uVar20") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n                iVar10 = *param_1;\n                goto LAB_00057993;\n              }" ({ "{") (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (goto_statement "goto LAB_00057993;" (goto "goto") (statement_identifier "LAB_00057993") (; ";")) (} "}"))) (if_statement "if (uVar20 < 0x14) {\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" (if "if") (parenthesized_expression "(uVar20 < 0x14)" (( "(") (binary_expression "uVar20 < 0x14" (identifier "uVar20") (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar7 = (ushort)*local_44;\n                if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }\n                local_44 = (uint *)((int)local_44 + 2);\n                uVar22 = (ulonglong)uVar7;\n                goto joined_r0x00057a0a;\n              }" ({ "{") (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (else "else") (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" (identifier "uVar7") (= "=") (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n                }" ({ "{") (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "uVar7") (= "=") (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" (( "(") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44")) (, ",") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar22 = (ulonglong)uVar7;" (assignment_expression "uVar22 = (ulonglong)uVar7" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7"))) (; ";")) (goto_statement "goto joined_r0x00057a0a;" (goto "goto") (statement_identifier "joined_r0x00057a0a") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (else "else") (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" (identifier "uVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (expression_statement "uVar5 = local_44[1];" (assignment_expression "uVar5 = local_44[1]" (identifier "uVar5") (= "=") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = uVar5;" (assignment_expression "uVar11 = uVar5" (identifier "uVar11") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (cVar9 != '\0') {\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;\n                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;\n              }" ({ "{") (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (identifier "uVar11") (= "=") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" (identifier "uVar12") (= "=") (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |\n                         uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar5 << 0x18" (identifier "uVar5") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "uVar21 = CONCAT44(uVar11,uVar12);" (assignment_expression "uVar21 = CONCAT44(uVar11,uVar12)" (identifier "uVar21") (= "=") (call_expression "CONCAT44(uVar11,uVar12)" (identifier "CONCAT44") (argument_list "(uVar11,uVar12)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_000579dc:\n              local_3c = uVar21;" (statement_identifier "LAB_000579dc") (: ":") (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" (identifier "local_3c") (= "=") (identifier "uVar21")) (; ";"))) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "local_20") (= "=") (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "FUN_00056b30") (argument_list "(*param_1,iVar13,iVar19,&local_3c)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar13") (, ",") (identifier "iVar19") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" (identifier "uVar22") (= "=") (identifier "local_3c")) (; ";")) (goto_statement "goto joined_r0x00057a0a;" (goto "goto") (statement_identifier "joined_r0x00057a0a") (; ";")) (} "}"))) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar20 = (uint)(byte)*local_44;" (assignment_expression "uVar20 = (uint)(byte)*local_44" (identifier "uVar20") (= "=") (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44"))) (; ";")) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" (identifier "local_44") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_000577b8;" (goto "goto") (statement_identifier "LAB_000577b8") (; ";"))) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (uVar2 < 0x32) {\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }\n            else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n              uVar22 = (ulonglong)uVar20;\n              if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }\n            }" ({ "{") (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (uVar2 == 1) {\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" (if "if") (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                param_1[8] = uVar20;\n                param_1[9] = 0;\n                uVar22 = (ulonglong)uVar20;\n              }" ({ "{") (expression_statement "param_1[8] = uVar20;" (assignment_expression "param_1[8] = uVar20" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar22 = (ulonglong)uVar20;" (assignment_expression "uVar22 = (ulonglong)uVar20" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" (else "else") (compound_statement "{\njoined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;\n            }" ({ "{") (labeled_statement "joined_r0x00057be3:\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" (statement_identifier "joined_r0x00057be3") (: ":") (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;" (if "if") (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" (( "(") (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" (( "(") (binary_expression "uVar2 != 0x6e" (identifier "uVar2") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 0x2007)" (( "(") (binary_expression "uVar2 != 0x2007" (identifier "uVar2") (!= "!=") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto joined_r0x00057934;" (goto "goto") (statement_identifier "joined_r0x00057934") (; ";")))) (} "}")))) (} "}")) (else_clause "else {\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;\njoined_r0x00057e18:\n            uVar22 = uVar8;\n            if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }\n          }" ({ "{") (if_statement "if (uVar20 == 0x19) {\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }\n            else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" (if "if") (parenthesized_expression "(uVar20 == 0x19)" (( "(") (binary_expression "uVar20 == 0x19" (identifier "uVar20") (== "==") (number_literal "0x19")) () ")")) (compound_statement "{\n              local_28._0_4_ = (uint *)0x1;\n              local_28._4_4_ = 0;\n            }" ({ "{") (expression_statement "local_28._0_4_ = (uint *)0x1;" (assignment_expression "local_28._0_4_ = (uint *)0x1" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" (else "else") (compound_statement "{\n              if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }\n              if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              local_28._0_4_ = (uint *)*local_44;\n              uVar12 = local_44[1];\n              local_28._4_4_ = uVar12;\n              if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }\n              local_44 = local_44 + 2;\n            }" ({ "{") (if_statement "if (uVar20 < 0x1a) {\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" (if "if") (parenthesized_expression "(uVar20 < 0x1a)" (( "(") (binary_expression "uVar20 < 0x1a" (identifier "uVar20") (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }\n                iVar10 = *param_1;\n                if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }\nLAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                uVar12 = *local_44;\n                if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }\n                uVar21 = (ulonglong)uVar12;\n                local_44 = local_44 + 1;\n                goto LAB_000579dc;\n              }" ({ "{") (if_statement "if (uVar20 != 0x17) {\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" (if "if") (parenthesized_expression "(uVar20 != 0x17)" (( "(") (binary_expression "uVar20 != 0x17" (identifier "uVar20") (!= "!=") (number_literal "0x17")) () ")")) (compound_statement "{\n                  if (uVar20 != 0x18) {\n                    return 0;\n                  }\n                  goto LAB_00057851;\n                }" ({ "{") (if_statement "if (uVar20 != 0x18) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(uVar20 != 0x18)" (( "(") (binary_expression "uVar20 != 0x18" (identifier "uVar20") (!= "!=") (number_literal "0x18")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_00057851;" (goto "goto") (statement_identifier "LAB_00057851") (; ";")) (} "}"))) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x44) != 4) {\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x44) != 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0x44) != 4" (pointer_expression "*(int *)(iVar10 + 0x44)" (* "*") (cast_expression "(int *)(iVar10 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x44)" (( "(") (binary_expression "iVar10 + 0x44" (identifier "iVar10") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                  uVar21 = FUN_0005b150(iVar10,&local_44);\n                  goto LAB_000579dc;\n                }" ({ "{") (expression_statement "uVar21 = FUN_0005b150(iVar10,&local_44);" (assignment_expression "uVar21 = FUN_0005b150(iVar10,&local_44)" (identifier "uVar21") (= "=") (call_expression "FUN_0005b150(iVar10,&local_44)" (identifier "FUN_0005b150") (argument_list "(iVar10,&local_44)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (goto_statement "goto LAB_000579dc;" (goto "goto") (statement_identifier "LAB_000579dc") (; ";")) (} "}"))) (labeled_statement "LAB_00057993:\n                piVar3 = *(int **)(iVar10 + 8);" (statement_identifier "LAB_00057993") (: ":") (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(iVar10 + 8)" (* "*") (cast_expression "(int **)(iVar10 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (else "else") (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar12 = *local_44;" (assignment_expression "uVar12 = *local_44" (identifier "uVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;\n                }" ({ "{") (expression_statement "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18;" (assignment_expression "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" (identifier "uVar12") (= "=") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                           uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "uVar21 = (ulonglong)uVar12;" (assignment_expression "uVar21 = (ulonglong)uVar12" (identifier "uVar21") (= "=") (cast_expression "(ulonglong)uVar12" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000579dc;" (goto "goto") (statement_identifier "LAB_000579dc") (; ";")) (} "}"))) (if_statement "if (uVar20 != 0x20) {\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" (if "if") (parenthesized_expression "(uVar20 != 0x20)" (( "(") (binary_expression "uVar20 != 0x20" (identifier "uVar20") (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n                if (uVar20 < 0x20) {\n                  return 0;\n                }\n                if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }\n                goto LAB_00057ac5;\n              }" ({ "{") (if_statement "if (uVar20 < 0x20) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(uVar20 < 0x20)" (( "(") (binary_expression "uVar20 < 0x20" (identifier "uVar20") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (1 < uVar20 - 0x1f01) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(1 < uVar20 - 0x1f01)" (( "(") (binary_expression "1 < uVar20 - 0x1f01" (number_literal "1") (< "<") (binary_expression "uVar20 - 0x1f01" (identifier "uVar20") (- "-") (number_literal "0x1f01"))) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_00057ac5;" (goto "goto") (statement_identifier "LAB_00057ac5") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (else "else") (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_28._0_4_ = (uint *)*local_44;" (assignment_expression "local_28._0_4_ = (uint *)*local_44" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" (identifier "uVar12") (= "=") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_28._4_4_ = uVar12;" (assignment_expression "local_28._4_4_ = uVar12" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (cVar9 != '\0') {\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;\n                local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n              }" ({ "{") (expression_statement "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;" (assignment_expression "local_28._4_4_ =\n                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |\n                     ((uint)(uint *)local_28 & 0xff00) << 8" (binary_expression "(uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_28 >> 0x18" (cast_expression "(uint)(uint *)local_28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)(uint *)local_28 & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff0000)" (( "(") (binary_expression "(uint)(uint *)local_28 & 0xff0000" (cast_expression "(uint)(uint *)local_28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)(uint *)local_28 & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_28 & 0xff00)" (( "(") (binary_expression "(uint)(uint *)local_28 & 0xff00" (cast_expression "(uint)(uint *)local_28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)(uint *)local_28 << 0x18" (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "local_28._0_4_ =\n                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))\n            goto LAB_00057590;" (if "if") (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (( "(") (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),\n               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (, ",") (comma_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar8") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (, ",") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")))) () ")"))) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";"))) (labeled_statement "joined_r0x00057e18:\n            uVar22 = uVar8;" (statement_identifier "joined_r0x00057e18") (: ":") (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" (identifier "uVar22") (= "=") (identifier "uVar8")) (; ";"))) (if_statement "if (uVar2 == 3) {\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" (if "if") (parenthesized_expression "(uVar2 == 3)" (( "(") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n              if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }\n            }" ({ "{") (if_statement "if (uVar20 == 8) {\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }\n              else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" (if "if") (parenthesized_expression "(uVar20 == 8)" (( "(") (binary_expression "uVar20 == 8" (identifier "uVar20") (== "==") (number_literal "8")) () ")")) (compound_statement "{\nLAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;\n                param_1[0xf] = (int)(uint *)local_28;\n                uVar22 = uVar8;\n              }" ({ "{") (labeled_statement "LAB_00057816:\n                local_28._0_4_ = (uint *)uVar8;" (statement_identifier "LAB_00057816") (: ":") (expression_statement "local_28._0_4_ = (uint *)uVar8;" (assignment_expression "local_28._0_4_ = (uint *)uVar8" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)uVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar8"))) (; ";"))) (expression_statement "param_1[0xf] = (int)(uint *)local_28;" (assignment_expression "param_1[0xf] = (int)(uint *)local_28" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")))) (; ";")) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" (identifier "uVar22") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" (else "else") (compound_statement "{\n                uVar21 = local_3c;\n                if (uVar20 == 0xe) goto LAB_00057d36;\n              }" ({ "{") (expression_statement "uVar21 = local_3c;" (assignment_expression "uVar21 = local_3c" (identifier "uVar21") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (uVar20 == 0xe) goto LAB_00057d36;" (if "if") (parenthesized_expression "(uVar20 == 0xe)" (( "(") (binary_expression "uVar20 == 0xe" (identifier "uVar20") (== "==") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_00057d36;" (goto "goto") (statement_identifier "LAB_00057d36") (; ";"))) (} "}")))) (} "}"))) (} "}")))))) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";")) (} "}"))) (if_statement "if (uVar20 == 7) {\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" (if "if") (parenthesized_expression "(uVar20 == 7)" (( "(") (binary_expression "uVar20 == 7" (identifier "uVar20") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n          piVar3 = *(int **)(*param_1 + 8);\n          pcVar4 = *(code **)(*piVar3 + 0xc);\n          if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }\n          local_3c._0_4_ = (uint *)*local_44;\n          uVar12 = local_44[1];\n          local_3c._4_4_ = uVar12;\n          if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }\n          local_44 = local_44 + 2;\nLAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n          local_28._4_4_ = local_3c._4_4_;\n          local_28._0_4_ = (uint *)local_3c;\n          goto LAB_00057c54;\n        }" ({ "{") (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }\n          else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar9 = (*pcVar4)(piVar3);\n          }" (else "else") (compound_statement "{\n            cVar9 = (*pcVar4)(piVar3);\n          }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "uVar12 = local_44[1];" (assignment_expression "uVar12 = local_44[1]" (identifier "uVar12") (= "=") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_3c._4_4_ = uVar12;" (assignment_expression "local_3c._4_4_ = uVar12" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (cVar9 != '\0') {\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;\n            local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);\n          }" ({ "{") (expression_statement "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;" (assignment_expression "local_3c._4_4_ =\n                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                 ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18);" (assignment_expression "local_3c._0_4_ =\n                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                         uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_00057f30:\n          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (statement_identifier "LAB_00057f30") (: ":") (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "local_20") (= "=") (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "FUN_00056b30") (argument_list "(*param_1,iVar13,iVar19,&local_3c)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar13") (, ",") (identifier "iVar19") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";"))) (expression_statement "local_28._4_4_ = local_3c._4_4_;" (assignment_expression "local_28._4_4_ = local_3c._4_4_" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "local_28._0_4_ = (uint *)local_3c;" (assignment_expression "local_28._0_4_ = (uint *)local_3c" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (; ";")) (goto_statement "goto LAB_00057c54;" (goto "goto") (statement_identifier "LAB_00057c54") (; ";")) (} "}"))) (if_statement "if (uVar20 < 8) {\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" (if "if") (parenthesized_expression "(uVar20 < 8)" (( "(") (binary_expression "uVar20 < 8" (identifier "uVar20") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n          if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }\n          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }\n          goto LAB_00057590;\n        }" ({ "{") (if_statement "if (uVar20 == 4) {\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }\n          else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" (if "if") (parenthesized_expression "(uVar20 == 4)" (( "(") (binary_expression "uVar20 == 4" (identifier "uVar20") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            local_20 = *local_44;\n            if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }\n            local_28._0_4_ = local_44 + 1;\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\nLAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          }" ({ "{") (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" (else "else") (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_20 = *local_44;" (assignment_expression "local_20 = *local_44" (identifier "local_20") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;\n            }" ({ "{") (expression_statement "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18;" (assignment_expression "local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" (identifier "local_20") (= "=") (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |\n                         local_20 << 0x18" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8" (binary_expression "local_20 >> 0x18 | (local_20 & 0xff0000) >> 8" (binary_expression "local_20 >> 0x18" (identifier "local_20") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_20 & 0xff0000) >> 8" (parenthesized_expression "(local_20 & 0xff0000)" (( "(") (binary_expression "local_20 & 0xff0000" (identifier "local_20") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_20 & 0xff00) << 8" (parenthesized_expression "(local_20 & 0xff00)" (( "(") (binary_expression "local_20 & 0xff00" (identifier "local_20") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_20 << 0x18" (identifier "local_20") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "local_28._0_4_ = local_44 + 1;" (assignment_expression "local_28._0_4_ = local_44 + 1" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(uint *)local_28 + local_20)" (( "(") (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (+ "+") (identifier "local_20")) () ")")))) (; ";")) (labeled_statement "LAB_00057c54:\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (statement_identifier "LAB_00057c54") (: ":") (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" (else "else") (compound_statement "{\n            if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }\n            if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }\n            if (uVar20 != 3) {\n              return 0;\n            }\n            piVar3 = *(int **)(*param_1 + 8);\n            pcVar4 = *(code **)(*piVar3 + 0xc);\n            if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }\n            uVar7 = (ushort)*local_44;\n            if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }\n            local_20 = (uint)uVar7;\n            local_28._0_4_ = (uint *)((int)local_44 + 2);\n            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n            local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          }" ({ "{") (if_statement "if (4 < uVar20) {\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" (if "if") (parenthesized_expression "(4 < uVar20)" (( "(") (binary_expression "4 < uVar20" (number_literal "4") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n              if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }\n              piVar3 = *(int **)(*param_1 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar7 = (ushort)*local_44;\n              if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }\n              local_28._0_4_ = (uint *)(uint)uVar7;\n              local_44 = (uint *)((int)local_44 + 2);\n              local_28._4_4_ = 0;\n              goto LAB_00057c54;\n            }" ({ "{") (if_statement "if (uVar20 != 5) {\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" (if "if") (parenthesized_expression "(uVar20 != 5)" (( "(") (binary_expression "uVar20 != 5" (identifier "uVar20") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar20 != 6) {\n                  return 0;\n                }\n                piVar3 = *(int **)(*param_1 + 8);\n                pcVar4 = *(code **)(*piVar3 + 0xc);\n                if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }\n                local_3c._0_4_ = (uint *)*local_44;\n                local_3c._4_4_ = 0;\n                if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }\n                local_44 = local_44 + 1;\n                goto LAB_00057f30;\n              }" ({ "{") (if_statement "if (uVar20 != 6) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(uVar20 != 6)" (( "(") (binary_expression "uVar20 != 6" (identifier "uVar20") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }\n                else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  cVar9 = (*pcVar4)(piVar3);\n                }" (else "else") (compound_statement "{\n                  cVar9 = (*pcVar4)(piVar3);\n                }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "local_3c._0_4_ = (uint *)*local_44;" (assignment_expression "local_3c._0_4_ = (uint *)*local_44" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "local_3c._4_4_ = 0;" (assignment_expression "local_3c._4_4_ = 0" (field_expression "local_3c._4_4_" (identifier "local_3c") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar9 != '\0') {\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);\n                }" ({ "{") (expression_statement "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18);" (assignment_expression "local_3c._0_4_ =\n                       (uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" (field_expression "local_3c._0_4_" (identifier "local_3c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18)" (( "(") (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8 |\n                               (int)(uint *)local_3c << 0x18" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |\n                                ((uint)(uint *)local_3c & 0xff00) << 8" (binary_expression "(uint)(uint *)local_3c >> 0x18 |\n                                ((uint)(uint *)local_3c & 0xff0000) >> 8" (binary_expression "(uint)(uint *)local_3c >> 0x18" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff0000) >> 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff0000)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff0000" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)(uint *)local_3c & 0xff00) << 8" (parenthesized_expression "((uint)(uint *)local_3c & 0xff00)" (( "(") (binary_expression "(uint)(uint *)local_3c & 0xff00" (cast_expression "(uint)(uint *)local_3c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)(uint *)local_3c << 0x18" (cast_expression "(int)(uint *)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00057f30;" (goto "goto") (statement_identifier "LAB_00057f30") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (else "else") (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" (identifier "uVar7") (= "=") (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n              }" ({ "{") (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "uVar7") (= "=") (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" (( "(") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44")) (, ",") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_28._0_4_ = (uint *)(uint)uVar7;" (assignment_expression "local_28._0_4_ = (uint *)(uint)uVar7" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uint)uVar7" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_28._4_4_ = 0;" (assignment_expression "local_28._4_4_ = 0" (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00057c54;" (goto "goto") (statement_identifier "LAB_00057c54") (; ";")) (} "}"))) (if_statement "if (uVar20 == 1) {\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" (if "if") (parenthesized_expression "(uVar20 == 1)" (( "(") (binary_expression "uVar20 == 1" (identifier "uVar20") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              iVar10 = *param_1;\n              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;\nLAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);\n              pcVar4 = *(code **)(*piVar3 + 0xc);\n              if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }\n              uVar20 = *local_44;\n              if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }\n              uVar21 = (ulonglong)uVar20;\n              local_44 = local_44 + 1;\nLAB_000578e2:\n              local_3c = uVar21;\n              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);\n              uVar22 = local_3c;\n              if (uVar2 == 0x31) goto LAB_000577b8;\n              if (0x31 < uVar2) goto joined_r0x00057be3;\n              goto LAB_00057a16;\n            }" ({ "{") (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0x48) != 4" (pointer_expression "*(int *)(iVar10 + 0x48)" (* "*") (cast_expression "(int *)(iVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_000578c9;" (goto "goto") (statement_identifier "LAB_000578c9") (; ";"))) (labeled_statement "LAB_00057e35:\n              piVar3 = *(int **)(iVar10 + 8);" (statement_identifier "LAB_00057e35") (: ":") (expression_statement "piVar3 = *(int **)(iVar10 + 8);" (assignment_expression "piVar3 = *(int **)(iVar10 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(iVar10 + 8)" (* "*") (cast_expression "(int **)(iVar10 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }\n              else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar9 = (*pcVar4)(piVar3);\n              }" (else "else") (compound_statement "{\n                cVar9 = (*pcVar4)(piVar3);\n              }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar20 = *local_44;" (assignment_expression "uVar20 = *local_44" (identifier "uVar20") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;\n              }" ({ "{") (expression_statement "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18;" (assignment_expression "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (identifier "uVar20") (= "=") (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |\n                         uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" (identifier "uVar20") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" (( "(") (binary_expression "uVar20 & 0xff0000" (identifier "uVar20") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" (( "(") (binary_expression "uVar20 & 0xff00" (identifier "uVar20") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar20 << 0x18" (identifier "uVar20") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "uVar21 = (ulonglong)uVar20;" (assignment_expression "uVar21 = (ulonglong)uVar20" (identifier "uVar21") (= "=") (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_000578e2:\n              local_3c = uVar21;" (statement_identifier "LAB_000578e2") (: ":") (expression_statement "local_3c = uVar21;" (assignment_expression "local_3c = uVar21" (identifier "local_3c") (= "=") (identifier "uVar21")) (; ";"))) (expression_statement "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);" (assignment_expression "local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "local_20") (= "=") (call_expression "FUN_00056b30(*param_1,iVar13,iVar19,&local_3c)" (identifier "FUN_00056b30") (argument_list "(*param_1,iVar13,iVar19,&local_3c)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar13") (, ",") (identifier "iVar19") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (expression_statement "uVar22 = local_3c;" (assignment_expression "uVar22 = local_3c" (identifier "uVar22") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_000577b8;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_000577b8;" (goto "goto") (statement_identifier "LAB_000577b8") (; ";"))) (if_statement "if (0x31 < uVar2) goto joined_r0x00057be3;" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto joined_r0x00057be3;" (goto "goto") (statement_identifier "joined_r0x00057be3") (; ";"))) (goto_statement "goto LAB_00057a16;" (goto "goto") (statement_identifier "LAB_00057a16") (; ";")) (} "}"))) (if_statement "if (uVar20 != 3) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar20 != 3)" (( "(") (binary_expression "uVar20 != 3" (identifier "uVar20") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(*param_1 + 8);" (assignment_expression "piVar3 = *(int **)(*param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0xc);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_0003a350) {\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }\n            else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" (if "if") (parenthesized_expression "(pcVar4 == FUN_0003a350)" (( "(") (binary_expression "pcVar4 == FUN_0003a350" (identifier "pcVar4") (== "==") (identifier "FUN_0003a350")) () ")")) (compound_statement "{\n              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);\n            }" ({ "{") (expression_statement "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);" (assignment_expression "cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3)" (identifier "cVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xe8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xe8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xe8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xe8)" (* "*") (cast_expression "(code **)(*piVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xe8)" (( "(") (binary_expression "*piVar3 + 0xe8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              cVar9 = (*pcVar4)(piVar3);\n            }" (else "else") (compound_statement "{\n              cVar9 = (*pcVar4)(piVar3);\n            }" ({ "{") (expression_statement "cVar9 = (*pcVar4)(piVar3);" (assignment_expression "cVar9 = (*pcVar4)(piVar3)" (identifier "cVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar7 = (ushort)*local_44;" (assignment_expression "uVar7 = (ushort)*local_44" (identifier "uVar7") (= "=") (binary_expression "(ushort)*local_44" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (cVar9 != '\0') {\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));\n            }" ({ "{") (expression_statement "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));" (assignment_expression "uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "uVar7") (= "=") (call_expression "CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_44,*(byte *)((int)local_44 + 1))" (( "(") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44")) (, ",") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_20 = (uint)uVar7;" (assignment_expression "local_20 = (uint)uVar7" (identifier "local_20") (= "=") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(uint *)local_28 + local_20)" (( "(") (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (+ "+") (identifier "local_20")) () ")")))) (; ";")) (} "}")))) (if_statement "if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))\n          {\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" (if "if") (parenthesized_expression "((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))" (( "(") (binary_expression "(uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (&& "&&") (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32)" (( "(") (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (, ",") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32"))) () ")"))) () ")")) (compound_statement "{\nLAB_00057c63:\n            uVar8 = uVar22;\n            if (uVar2 != 1) goto joined_r0x00057e18;\n          }" ({ "{") (labeled_statement "LAB_00057c63:\n            uVar8 = uVar22;" (statement_identifier "LAB_00057c63") (: ":") (expression_statement "uVar8 = uVar22;" (assignment_expression "uVar8 = uVar22" (identifier "uVar8") (= "=") (identifier "uVar22")) (; ";"))) (if_statement "if (uVar2 != 1) goto joined_r0x00057e18;" (if "if") (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto joined_r0x00057e18;" (goto "goto") (statement_identifier "joined_r0x00057e18") (; ";"))) (} "}"))) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";")) (} "}"))) (if_statement "if (uVar20 == 10) {\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" (if "if") (parenthesized_expression "(uVar20 == 10)" (( "(") (binary_expression "uVar20 == 10" (identifier "uVar20") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n          local_28._0_4_ = (uint *)((int)local_44 + 1);\n          local_20 = (uint)(byte)*local_44;\n          local_44 = (uint *)((int)(uint *)local_28 + local_20);\n          goto LAB_00057c54;\n        }" ({ "{") (expression_statement "local_28._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_28._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_20 = (uint)(byte)*local_44;" (assignment_expression "local_20 = (uint)(byte)*local_44" (identifier "local_20") (= "=") (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44"))) (; ";")) (expression_statement "local_44 = (uint *)((int)(uint *)local_28 + local_20);" (assignment_expression "local_44 = (uint *)((int)(uint *)local_28 + local_20)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)(uint *)local_28 + local_20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(uint *)local_28 + local_20)" (( "(") (binary_expression "(int)(uint *)local_28 + local_20" (cast_expression "(int)(uint *)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28"))) (+ "+") (identifier "local_20")) () ")")))) (; ";")) (goto_statement "goto LAB_00057c54;" (goto "goto") (statement_identifier "LAB_00057c54") (; ";")) (} "}"))) (if_statement "if (uVar20 < 0xb) {\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" (if "if") (parenthesized_expression "(uVar20 < 0xb)" (( "(") (binary_expression "uVar20 < 0xb" (identifier "uVar20") (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n          if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }\n          local_28._0_4_ = local_44;\n          local_40 = strlen((char *)local_44);\n          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          local_44 = (uint *)((int)puVar18 + local_40 + 1);\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }\n          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);\n          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;\n          goto LAB_00057816;\n        }" ({ "{") (if_statement "if (uVar20 != 8) {\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" (if "if") (parenthesized_expression "(uVar20 != 8)" (( "(") (binary_expression "uVar20 != 8" (identifier "uVar20") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n            if (uVar20 != 9) {\n              return 0;\n            }\nLAB_00057851:\n            uVar12 = (uint)(byte)*local_44;\n            local_6c = (byte *)((int)local_44 + 1);\n            if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }\n            uVar22 = CONCAT44(local_28._4_4_,local_6c);\n            local_44 = (uint *)((int)local_70 + uVar12 + local_40);\n            local_20 = uVar12;\n            goto LAB_00057d6a;\n          }" ({ "{") (if_statement "if (uVar20 != 9) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar20 != 9)" (( "(") (binary_expression "uVar20 != 9" (identifier "uVar20") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00057851:\n            uVar12 = (uint)(byte)*local_44;" (statement_identifier "LAB_00057851") (: ":") (expression_statement "uVar12 = (uint)(byte)*local_44;" (assignment_expression "uVar12 = (uint)(byte)*local_44" (identifier "uVar12") (= "=") (binary_expression "(uint)(byte)*local_44" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44"))) (; ";"))) (expression_statement "local_6c = (byte *)((int)local_44 + 1);" (assignment_expression "local_6c = (byte *)((int)local_44 + 1)" (identifier "local_6c") (= "=") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)(byte)*local_44 < '\0') {\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }\n            else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" (if "if") (parenthesized_expression "((char)(byte)*local_44 < '\0')" (( "(") (binary_expression "(char)(byte)*local_44 < '\0'" (binary_expression "(char)(byte)*local_44" (cast_expression "(char)(byte)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);\n              local_70 = local_44;\n              local_6c = (byte *)((int)local_44 + local_40);\n            }" ({ "{") (expression_statement "uVar12 = FUN_00095970(local_6c,&local_40,uVar12);" (assignment_expression "uVar12 = FUN_00095970(local_6c,&local_40,uVar12)" (identifier "uVar12") (= "=") (call_expression "FUN_00095970(local_6c,&local_40,uVar12)" (identifier "FUN_00095970") (argument_list "(local_6c,&local_40,uVar12)" (( "(") (identifier "local_6c") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" (identifier "local_70") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_6c = (byte *)((int)local_44 + local_40);" (assignment_expression "local_6c = (byte *)((int)local_44 + local_40)" (identifier "local_6c") (= "=") (cast_expression "(byte *)((int)local_44 + local_40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_40)" (( "(") (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_40")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_40 = 1;\n              local_70 = local_44;\n            }" (else "else") (compound_statement "{\n              local_40 = 1;\n              local_70 = local_44;\n            }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_70 = local_44;" (assignment_expression "local_70 = local_44" (identifier "local_70") (= "=") (identifier "local_44")) (; ";")) (} "}")))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,local_6c);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,local_6c)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,local_6c)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,local_6c)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "local_6c") () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_70 + uVar12 + local_40);" (assignment_expression "local_44 = (uint *)((int)local_70 + uVar12 + local_40)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_70 + uVar12 + local_40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + uVar12 + local_40)" (( "(") (binary_expression "(int)local_70 + uVar12 + local_40" (binary_expression "(int)local_70 + uVar12" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (identifier "uVar12")) (+ "+") (identifier "local_40")) () ")")))) (; ";")) (expression_statement "local_20 = uVar12;" (assignment_expression "local_20 = uVar12" (identifier "local_20") (= "=") (identifier "uVar12")) (; ";")) (goto_statement "goto LAB_00057d6a;" (goto "goto") (statement_identifier "LAB_00057d6a") (; ";")) (} "}"))) (expression_statement "local_28._0_4_ = local_44;" (assignment_expression "local_28._0_4_ = local_44" (field_expression "local_28._0_4_" (identifier "local_28") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_40 = strlen((char *)local_44);" (assignment_expression "local_40 = strlen((char *)local_44)" (identifier "local_40") (= "=") (call_expression "strlen((char *)local_44)" (identifier "strlen") (argument_list "((char *)local_44)" (( "(") (cast_expression "(char *)local_44" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")) () ")")))) (; ";")) (expression_statement "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar8") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)puVar18 + local_40 + 1);" (assignment_expression "local_44 = (uint *)((int)puVar18 + local_40 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)puVar18 + local_40 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + local_40 + 1)" (( "(") (binary_expression "(int)puVar18 + local_40 + 1" (binary_expression "(int)puVar18 + local_40" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "local_40")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";"))) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n            if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }\n            goto LAB_00057590;\n          }" ({ "{") (if_statement "if ((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" (if "if") (parenthesized_expression "((uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) ||\n               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)" (( "(") (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (, ",") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007"))) () ")"))) () ")")) (compound_statement "{\n              param_1[0x12] = (int)puVar18;\n              uVar22 = uVar8;\n            }" ({ "{") (expression_statement "param_1[0x12] = (int)puVar18;" (assignment_expression "param_1[0x12] = (int)puVar18" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18"))) (; ";")) (expression_statement "uVar22 = uVar8;" (assignment_expression "uVar22 = uVar8" (identifier "uVar22") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";")) (} "}"))) (expression_statement "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))\n          goto LAB_00057590;" (if "if") (parenthesized_expression "((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))" (( "(") (binary_expression "(uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3)" (( "(") (comma_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3" (assignment_expression "uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(local_28._4_4_,(uint *)local_28)" (identifier "CONCAT44") (argument_list "(local_28._4_4_,(uint *)local_28)" (( "(") (field_expression "local_28._4_4_" (identifier "local_28") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(uint *)local_28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_28")) () ")")))) (, ",") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3"))) () ")"))) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";"))) (goto_statement "goto LAB_00057816;" (goto "goto") (statement_identifier "LAB_00057816") (; ";")) (} "}"))) (if_statement "if (uVar20 < 0xd) {\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" (if "if") (parenthesized_expression "(uVar20 < 0xd)" (( "(") (binary_expression "uVar20 < 0xd" (identifier "uVar20") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n          uVar22 = (ulonglong)(byte)*local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;\n          if (0x31 < uVar2) goto LAB_00057d79;\n          goto LAB_00057c63;\n        }" ({ "{") (expression_statement "uVar22 = (ulonglong)(byte)*local_44;" (assignment_expression "uVar22 = (ulonglong)(byte)*local_44" (identifier "uVar22") (= "=") (binary_expression "(ulonglong)(byte)*local_44" (call_expression "(ulonglong)(byte)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "local_44"))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_00057d6a:\n          if (uVar2 == 0x31) goto LAB_00057590;" (statement_identifier "LAB_00057d6a") (: ":") (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";")))) (if_statement "if (0x31 < uVar2) goto LAB_00057d79;" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_00057d79;" (goto "goto") (statement_identifier "LAB_00057d79") (; ";"))) (goto_statement "goto LAB_00057c63;" (goto "goto") (statement_identifier "LAB_00057c63") (; ";")) (} "}"))) (expression_statement "bVar1 = (byte)*local_44;" (assignment_expression "bVar1 = (byte)*local_44" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_44" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_44"))) (; ";")) (expression_statement "uVar12 = (uint)bVar1;" (assignment_expression "uVar12 = (uint)bVar1" (identifier "uVar12") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "puVar18 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar18 = (uint *)((int)local_44 + 1)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }\n        else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" (if "if") (parenthesized_expression "((char)bVar1 < '\0')" (( "(") (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);\n          puVar18 = (uint *)((int)local_44 + local_40);\n        }" ({ "{") (expression_statement "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);" (assignment_expression "uVar22 = FUN_00095a30(puVar18,&local_40,uVar12)" (identifier "uVar22") (= "=") (call_expression "FUN_00095a30(puVar18,&local_40,uVar12)" (identifier "FUN_00095a30") (argument_list "(puVar18,&local_40,uVar12)" (( "(") (identifier "puVar18") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "puVar18 = (uint *)((int)local_44 + local_40);" (assignment_expression "puVar18 = (uint *)((int)local_44 + local_40)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)local_44 + local_40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_40)" (( "(") (binary_expression "(int)local_44 + local_40" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_40")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" (else "else") (compound_statement "{\n          uVar22 = (ulonglong)uVar12;\n          local_40 = 1;\n          if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }\n        }" ({ "{") (expression_statement "uVar22 = (ulonglong)uVar12;" (assignment_expression "uVar22 = (ulonglong)uVar12" (identifier "uVar22") (= "=") (cast_expression "(ulonglong)uVar12" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((bVar1 & 0x40) != 0) {\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" (if "if") (parenthesized_expression "((bVar1 & 0x40) != 0)" (( "(") (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" (( "(") (binary_expression "bVar1 & 0x40" (identifier "bVar1") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);\n          }" ({ "{") (expression_statement "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);" (assignment_expression "uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80)" (identifier "uVar22") (= "=") (call_expression "CONCAT44(0xffffffff,uVar12 | 0xffffff80)" (identifier "CONCAT44") (argument_list "(0xffffffff,uVar12 | 0xffffff80)" (( "(") (number_literal "0xffffffff") (, ",") (binary_expression "uVar12 | 0xffffff80" (identifier "uVar12") (| "|") (number_literal "0xffffff80")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_44 = puVar18;" (assignment_expression "local_44 = puVar18" (identifier "local_44") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_00057590;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";"))) (if_statement "if (0x31 < uVar2) {\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\nLAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;\n          goto LAB_00057b31;\n        }" ({ "{") (labeled_statement "LAB_00057d79:\n          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" (statement_identifier "LAB_00057d79") (: ":") (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;" (if "if") (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" (( "(") (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" (( "(") (binary_expression "uVar2 != 0x6e" (identifier "uVar2") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 0x2007)" (( "(") (binary_expression "uVar2 != 0x2007" (identifier "uVar2") (!= "!=") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto LAB_00057590;" (goto "goto") (statement_identifier "LAB_00057590") (; ";")))) (goto_statement "goto LAB_00057b31;" (goto "goto") (statement_identifier "LAB_00057b31") (; ";")) (} "}"))) (expression_statement "puVar18 = (uint *)param_1[0xc];" (assignment_expression "puVar18 = (uint *)param_1[0xc]" (identifier "puVar18") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;" (if "if") (parenthesized_expression "(puVar18 == (uint *)param_1[0xd])" (( "(") (binary_expression "puVar18 == (uint *)param_1[0xd]" (identifier "puVar18") (== "==") (cast_expression "(uint *)param_1[0xd]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (goto_statement "goto LAB_00057700;" (goto "goto") (statement_identifier "LAB_00057700") (; ";"))) (labeled_statement "LAB_0005759c:\n        *puVar18 = local_30;" (statement_identifier "LAB_0005759c") (: ":") (expression_statement "*puVar18 = local_30;" (assignment_expression "*puVar18 = local_30" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (identifier "local_30")) (; ";"))) (expression_statement "puVar18[1] = local_2c;" (assignment_expression "puVar18[1] = local_2c" (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "*(ulonglong *)(puVar18 + 2) = uVar22;" (assignment_expression "*(ulonglong *)(puVar18 + 2) = uVar22" (pointer_expression "*(ulonglong *)(puVar18 + 2)" (* "*") (cast_expression "(ulonglong *)(puVar18 + 2)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 2)" (( "(") (binary_expression "puVar18 + 2" (identifier "puVar18") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar18[4] = local_20;" (assignment_expression "puVar18[4] = local_20" (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "param_1[0xc] = (int)(puVar18 + 5);" (assignment_expression "param_1[0xc] = (int)(puVar18 + 5)" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)(puVar18 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar18 + 5)" (( "(") (binary_expression "puVar18 + 5" (identifier "puVar18") (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_28 = uVar22;" (assignment_expression "local_28 = uVar22" (identifier "local_28") (= "=") (identifier "uVar22")) (; ";")) (} "}")))) (expression_statement "local_74 = local_74 + 8;" (assignment_expression "local_74 = local_74 + 8" (identifier "local_74") (= "=") (binary_expression "local_74 + 8" (identifier "local_74") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar13 = param_1[10];" (assignment_expression "iVar13 = param_1[10]" (identifier "iVar13") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_74 != iVar15)" (( "(") (binary_expression "local_74 != iVar15" (identifier "local_74") (!= "!=") (identifier "iVar15")) () ")")) (; ";")) (} "}")))) (if_statement "if (iVar13 == 0) {\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);" (call_expression "FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0)" (identifier "FUN_00069d00") (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children",0)" (( "(") (string_literal ""../../gold/dwarf_reader.h"" (" """) (string_content "../../gold/dwarf_reader.h") (" """)) (, ",") (number_literal "0x206") (, ",") (string_literal ""has_children"" (" """) (string_content "has_children") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000575e3:\n  uVar20 = (int)local_44 - iVar14;" (statement_identifier "LAB_000575e3") (: ":") (expression_statement "uVar20 = (int)local_44 - iVar14;" (assignment_expression "uVar20 = (int)local_44 - iVar14" (identifier "uVar20") (= "=") (binary_expression "(int)local_44 - iVar14" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (- "-") (identifier "iVar14"))) (; ";"))) (expression_statement "iVar14 = uVar20 + param_1[2];" (assignment_expression "iVar14 = uVar20 + param_1[2]" (identifier "iVar14") (= "=") (binary_expression "uVar20 + param_1[2]" (identifier "uVar20") (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);" (assignment_expression "iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" (identifier "iVar15") (= "=") (binary_expression "((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2])" (binary_expression "((int)uVar20 >> 0x1f) + param_1[3]" (parenthesized_expression "((int)uVar20 >> 0x1f)" (( "(") (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar20,param_1[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar20,param_1[2])" (identifier "CARRY4") (argument_list "(uVar20,param_1[2])" (( "(") (identifier "uVar20") (, ",") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) () ")")))))) (; ";")) (if_statement "if ((*(byte *)(iVar13 + 4) & 1) == 0) {\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }\n  else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar13 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar13 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 4) & 1)" (( "(") (binary_expression "*(byte *)(iVar13 + 4) & 1" (pointer_expression "*(byte *)(iVar13 + 4)" (* "*") (cast_expression "(byte *)(iVar13 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[8] = iVar14;\n    param_1[9] = iVar15;\n  }" ({ "{") (expression_statement "param_1[8] = iVar14;" (assignment_expression "param_1[8] = iVar14" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "param_1[9] = iVar15;" (assignment_expression "param_1[9] = iVar15" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (} "}")) (else_clause "else {\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" (else "else") (compound_statement "{\n    param_1[6] = iVar14;\n    param_1[7] = iVar15;\n  }" ({ "{") (expression_statement "param_1[6] = iVar14;" (assignment_expression "param_1[6] = iVar14" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "param_1[7] = iVar15;" (assignment_expression "param_1[7] = iVar15" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */

bool __thiscall gold::type_1::function_1(type_1 *this)

{
  type_2 *var_4;
  type_3 var_36;
  void *var_9;
  type_4 var_26;
  int *piVar4;
  type_5 *var_22;
  type_6 *pRVar6;
  type_7 **pp_Var7;
  type_7 *var_31;
  void *var_10;
  type_8 uVar10;
  char var_23;
  int *var_27;
  type_9 __position;
  type_10 *pDVar12;
  type_11 uVar13;
  type_4 var_29;
  int var_21;
  type_4 uVar16;
  size_t var_14;
  void *__dest;
  type_4 var_19;
  int var_1;
  type_12 aVar19;
  int var_3;
  type_11 uVar21;
  void *var_12;
  type_4 *puVar23;
  int iVar24;
  type_2 *var_34;
  type_4 var_6;
  type_13 uVar27;
  uint64_t uVar28;
  int var_15;
  type_2 *var_32;
  type_2 *local_6c;
  type_2 *var_16;
  size_t var_18;
  type_14 str_off;
  type_15 attr_value;
  
  var_1 = var_27[10];
  if (var_1 == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  pDVar12 = (type_10 *)*var_27;
  var_3 = (int)pDVar12->cu_offset_;
  var_4 = pDVar12->buffer_ + var_27[2] + var_3;
  if (pDVar12->buffer_ + var_3 + (int)pDVar12->cu_length_ < var_4 + 1) {
    Dwarf_info_reader::var_5(pDVar12);
    return false;
  }
  if (var_4 == (type_2 *)0x0) {
    return false;
  }
  var_16 = var_4 + var_27[4];
  var_3 = *(int *)(var_1 + 0xc) - *(int *)(var_1 + 8);
  var_6 = var_3 >> 3;
  if (0xccccccc < var_6) {
                    /* WARNING: Subroutine does not return */
    std::var_7("vector::reserve");
  }
  var_9 = (void *)var_27[0xb];
  if ((type_4)((var_27[0xd] - (int)var_9 >> 2) * -0x33333333) < var_6) {
    var_10 = (void *)var_27[0xc];
    var_14 = (int)var_10 - (int)var_9;
    if (var_6 == 0) {
      __dest = (void *)0x0;
      var_12 = var_9;
    }
    else {
      __dest = var_8(var_6 * 0x14);
      var_12 = (void *)var_27[0xb];
    }
    if (var_9 != var_10) {
      var_11(__dest,var_9,var_14);
    }
    if (var_12 != (void *)0x0) {
      var_13(var_12);
    }
    var_27[0xb] = (int)__dest;
    var_27[0xc] = var_14 + (int)__dest;
    var_27[0xd] = (int)(var_6 * 0x14 + (int)__dest);
    var_1 = var_27[10];
    if (var_6 != 0) goto LAB_00057480;
  }
  else {
    if (var_6 == 0) goto LAB_000575e3;
LAB_00057480:
    var_15 = 0;
    do {
      puVar23 = (type_4 *)(var_15 + *(int *)(var_1 + 8));
      var_6 = puVar23[1];
      var_26 = *puVar23;
      if (var_6 == 0x16) {
        var_36 = *var_16;
        uVar27 = (type_13)var_36;
        var_32 = var_16 + 1;
        if ((char)var_36 < '\0') {
          uVar27 = var_17(var_32,&var_18,var_36);
          var_32 = var_16 + var_18;
        }
        else {
          var_18 = 1;
        }
        var_6 = (type_4)uVar27;
        var_16 = var_32;
      }
      var_34 = var_16;
      var_19 = (int)var_16 - (int)var_4;
      var_1 = var_19 + var_27[2];
      iVar24 = ((int)var_19 >> 0x1f) + var_27[3] + (type_4)var_20(var_19,var_27[2]);
      attr_value.aux.shndx = 0;
      attr_value.attr = var_26;
      attr_value.form = var_6;
      if (var_6 == 0xe) {
        piVar4 = *(int **)(*var_27 + 8);
        var_21 = *piVar4;
        var_22 = *(type_5 **)(var_21 + 0xc);
        if (*(int *)(*var_27 + 0x44) == 4) {
          if (var_22 == type_6::is_big_endian) {
            var_23 = (**(type_5 **)(var_21 + 0xe8))(piVar4);
          }
          else {
            var_23 = (*var_22)(piVar4);
          }
          var_6 = *(type_4 *)var_16;
          if (var_23 != '\0') {
            var_6 = var_6 >> 0x18 | (var_6 & 0xff0000) >> 8 | (var_6 & 0xff00) << 8 |
                     var_6 << 0x18;
          }
          var_16 = var_16 + 4;
          str_off = (type_14)var_6;
        }
        else {
          if (var_22 == type_6::is_big_endian) {
            var_23 = (**(type_5 **)(var_21 + 0xe8))(piVar4);
          }
          else {
            var_23 = (*var_22)(piVar4);
          }
          var_6 = *(type_4 *)var_16;
          var_19 = *(type_4 *)(var_16 + 4);
          var_29 = var_19;
          if (var_23 != '\0') {
            var_29 = var_6 >> 0x18 | (var_6 & 0xff0000) >> 8 | (var_6 & 0xff00) << 8 |
                     var_6 << 0x18;
            var_6 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                     var_19 << 0x18;
          }
          var_16 = var_16 + 8;
          str_off = var_24(var_29,var_6);
        }
        attr_value.aux.shndx =
             type_10::var_25
                       ((type_10 *)*var_27,var_24(iVar24,var_1),&str_off);
        attr_value.val.refval = str_off;
        if (var_26 != 0x31) {
          if (var_26 < 0x32) {
            if ((var_26 != 1) && (var_26 == 3)) {
LAB_00057d36:
              *(type_12 *)(var_27 + 0x15) = attr_value.aux;
              var_27[0x11] = attr_value.val.intval._4_4_;
              var_27[0x10] = (int)attr_value.val.stringval;
            }
          }
          else {
            uVar13 = (char *)str_off;
            uVar21 = str_off._4_4_;
            if ((var_26 == 0x6e) || (var_26 == 0x2007)) {
LAB_00057b8d:
              *(type_12 *)(var_27 + 0x15) = attr_value.aux;
              var_27[0x13] = (int)uVar13;
              var_27[0x14] = uVar21;
            }
          }
        }
LAB_00057590:
        __position._M_current = (type_15 *)var_27[0xc];
        if (__position._M_current == (type_15 *)var_27[0xd]) goto LAB_00057700;
LAB_0005759c:
        (__position._M_current)->attr = attr_value.attr;
        (__position._M_current)->form = attr_value.form;
        ((__position._M_current)->val).stringval = attr_value.val.stringval;
        *(type_11 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;
        (__position._M_current)->aux = attr_value.aux;
        var_27[0xc] = (int)(__position._M_current + 1);
      }
      else {
        if (0xe < var_6) {
          if (var_6 == 0x15) {
            var_36 = *var_16;
            if ((char)var_36 < '\0') {
              attr_value.val.uintval = var_17(var_16 + 1,&var_18,var_36);
              var_16 = var_16 + var_18;
            }
            else {
              var_18 = 1;
              attr_value.val.intval._1_7_ = 0;
              attr_value.val.uintval._0_1_ = var_36;
              var_16 = var_16 + 1;
            }
joined_r0x00057a0a:
            if (var_26 == 0x31) {
LAB_000577b8:
              var_27[0x18] = (int)attr_value.val.stringval;
              var_27[0x19] = attr_value.val.intval._4_4_;
            }
            else if (var_26 < 0x32) {
LAB_00057a16:
              if ((var_26 == 1) && (attr_value.aux.shndx == 0)) {
                var_27[8] = (int)attr_value.val.stringval;
                var_27[9] = attr_value.val.intval._4_4_;
              }
            }
            else if ((var_26 == 0x6e) || (var_26 == 0x2007)) {
LAB_00057b31:
              if (var_6 == 8) {
                var_27[0x12] = (int)attr_value.val.stringval;
              }
              else if (var_6 == 0xe) {
                uVar13 = attr_value.val.stringval;
                uVar21 = attr_value.val.intval._4_4_;
                goto LAB_00057b8d;
              }
            }
            else {
LAB_00057931:
              if (var_26 == 0x47) {
                uVar13 = attr_value.val.stringval;
                uVar21 = attr_value.val.intval._4_4_;
LAB_00057942:
                var_27[0x16] = (int)uVar13;
                var_27[0x17] = uVar21;
              }
            }
          }
          else if (var_6 < 0x16) {
            if (var_6 != 0x11) {
              if (var_6 < 0x12) {
                if (var_6 != 0xf) {
                  if (var_6 != 0x10) {
                    return false;
                  }
                  pDVar12 = (type_10 *)*var_27;
                  var_6 = pDVar12->address_size_;
                  if (2 < pDVar12->cu_version_) {
                    var_6 = pDVar12->offset_size_;
                  }
                  if (var_6 == 4) goto LAB_00057e35;
LAB_000578c9:
                  str_off = type_10::read_from_pointer<64>(pDVar12,&var_16);
                  goto LAB_000578e2;
                }
LAB_00057ac5:
                var_36 = *var_16;
                if ((char)var_36 < '\0') {
                  attr_value.val.uintval = var_17(var_16 + 1,&var_18,var_36);
                  var_16 = var_16 + var_18;
                }
                else {
                  var_18 = 1;
                  attr_value.val.intval._1_7_ = 0;
                  attr_value.val.uintval._0_1_ = var_36;
                  var_16 = var_16 + 1;
                }
                goto LAB_00057d6a;
              }
              if (var_6 == 0x13) {
                pDVar12 = (type_10 *)*var_27;
                goto LAB_00057993;
              }
              if (var_6 < 0x14) {
                piVar4 = *(int **)(*var_27 + 8);
                var_22 = *(type_5 **)(*piVar4 + 0xc);
                if (var_22 == type_6::is_big_endian) {
                  var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
                }
                else {
                  var_23 = (*var_22)(piVar4);
                }
                    /* WARNING: Load size is inaccurate */
                attr_value.val.blockval._0_2_ = *var_16;
                if (var_23 != '\0') {
                  attr_value.val.intval._0_2_ = var_28(*var_16,var_16[1]);
                }
                attr_value.val.intval._2_6_ = 0;
                var_16 = var_16 + 2;
                goto joined_r0x00057a0a;
              }
              piVar4 = *(int **)(*var_27 + 8);
              var_22 = *(type_5 **)(*piVar4 + 0xc);
              if (var_22 == type_6::is_big_endian) {
                var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                var_23 = (*var_22)(piVar4);
              }
              var_19 = *(type_4 *)var_16;
              var_29 = *(type_4 *)(var_16 + 4);
              uVar16 = var_29;
              if (var_23 != '\0') {
                uVar16 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                         var_19 << 0x18;
                var_19 = var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                         var_29 << 0x18;
              }
              var_16 = var_16 + 8;
              str_off = var_24(uVar16,var_19);
LAB_000579dc:
              attr_value.aux.shndx =
                   type_10::var_25
                             ((type_10 *)*var_27,var_24(iVar24,var_1),&str_off);
              attr_value.val.refval = str_off;
              goto joined_r0x00057a0a;
            }
            uVar21 = 0;
            var_34 = var_16 + 1;
            uVar13 = (char *)var_30(0,*var_16);
            attr_value.val.intval._4_4_ = 0;
            attr_value.val.stringval = uVar13;
            var_16 = var_34;
            if (var_26 == 0x31) goto LAB_000577b8;
            if (var_26 < 0x32) {
              if (var_26 == 1) {
                var_27[8] = (int)uVar13;
                var_27[9] = 0;
              }
            }
            else if (((var_26 != 0x6e) && (var_26 != 0x2007)) && (var_26 == 0x47)) goto LAB_00057942;
          }
          else {
            if (var_6 == 0x19) {
              attr_value.val.intval = 1;
            }
            else {
              if (var_6 < 0x1a) {
                if (var_6 != 0x17) {
                  if (var_6 != 0x18) {
                    return false;
                  }
                  goto LAB_00057851;
                }
                pDVar12 = (type_10 *)*var_27;
                if (pDVar12->offset_size_ != 4) {
                  str_off = type_10::read_from_pointer<64>(pDVar12,&var_16);
                  goto LAB_000579dc;
                }
LAB_00057993:
                pRVar6 = pDVar12->object_;
                pp_Var7 = (pRVar6->super_Object)._vptr_Object;
                var_31 = pp_Var7[3];
                if (var_31 == type_6::is_big_endian) {
                  var_21 = (*pp_Var7[0x3a])(pRVar6);
                  var_23 = (char)var_21;
                }
                else {
                  var_21 = (*var_31)(pRVar6);
                  var_23 = (char)var_21;
                }
                var_19 = *(type_4 *)var_16;
                if (var_23 != '\0') {
                  var_19 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                           var_19 << 0x18;
                }
                var_16 = var_16 + 4;
                str_off = (type_14)var_19;
                goto LAB_000579dc;
              }
              if (var_6 != 0x20) {
                if (var_6 < 0x20) {
                  return false;
                }
                if (1 < var_6 - 0x1f01) {
                  return false;
                }
                goto LAB_00057ac5;
              }
              piVar4 = *(int **)(*var_27 + 8);
              var_22 = *(type_5 **)(*piVar4 + 0xc);
              if (var_22 == type_6::is_big_endian) {
                var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                var_23 = (*var_22)(piVar4);
              }
                    /* WARNING: Load size is inaccurate */
              attr_value.val.blockval = *var_16;
              var_19 = *(type_4 *)(var_16 + 4);
              attr_value.val.uintval._4_4_ = var_19;
              if (var_23 != '\0') {
                attr_value.val.uintval._4_4_ =
                     (type_4)attr_value.val.stringval >> 0x18 |
                     ((type_4)attr_value.val.stringval & 0xff0000) >> 8 |
                     ((type_4)attr_value.val.stringval & 0xff00) << 8 |
                     (int)attr_value.val.stringval << 0x18;
                attr_value.val.stringval =
                     (char *)(var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                             var_19 << 0x18);
              }
              var_16 = var_16 + 8;
            }
            if ((var_26 == 0x6e) || (var_26 == 0x2007)) goto LAB_00057590;
joined_r0x00057e18:
            if (var_26 == 3) {
              if (var_6 == 8) {
LAB_00057816:
                var_27[0xf] = (int)attr_value.val.stringval;
              }
              else if (var_6 == 0xe) goto LAB_00057d36;
            }
          }
          goto LAB_00057590;
        }
        if (var_6 == 7) {
          piVar4 = *(int **)(*var_27 + 8);
          var_22 = *(type_5 **)(*piVar4 + 0xc);
          if (var_22 == type_6::is_big_endian) {
            var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
          }
          else {
            var_23 = (*var_22)(piVar4);
          }
          var_19 = *(type_4 *)var_16;
          var_29 = *(type_4 *)(var_16 + 4);
          uVar16 = var_29;
          if (var_23 != '\0') {
            uVar16 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                     var_19 << 0x18;
            var_19 = var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                     var_29 << 0x18;
          }
          var_16 = var_16 + 8;
          str_off = var_24(uVar16,var_19);
LAB_00057f30:
          attr_value.aux.shndx =
               type_10::var_25
                         ((type_10 *)*var_27,var_24(iVar24,var_1),&str_off);
          attr_value.val.refval = str_off;
joined_r0x00057583:
          if ((var_26 != 0x31) && (var_26 < 0x32)) {
LAB_00057c63:
            if (var_26 != 1) goto joined_r0x00057e18;
          }
          goto LAB_00057590;
        }
        if (var_6 < 8) {
          if (var_6 == 4) {
            piVar4 = *(int **)(*var_27 + 8);
            var_22 = *(type_5 **)(*piVar4 + 0xc);
            if (var_22 == type_6::is_big_endian) {
              var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              var_23 = (*var_22)(piVar4);
            }
            attr_value.aux.shndx = *(type_4 *)var_16;
            if (var_23 != '\0') {
              attr_value.aux.shndx =
                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |
                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;
            }
            attr_value.val.blockval = var_16 + 4;
            var_16 = var_16 + 4 + attr_value.aux.shndx;
          }
          else if (var_6 < 5) {
            if (var_6 == 1) {
              pDVar12 = (type_10 *)*var_27;
              if (pDVar12->address_size_ != 4) goto LAB_000578c9;
LAB_00057e35:
              pRVar6 = pDVar12->object_;
              pp_Var7 = (pRVar6->super_Object)._vptr_Object;
              var_31 = pp_Var7[3];
              if (var_31 == type_6::is_big_endian) {
                var_21 = (*pp_Var7[0x3a])(pRVar6);
                var_23 = (char)var_21;
              }
              else {
                var_21 = (*var_31)(pRVar6);
                var_23 = (char)var_21;
              }
              var_6 = *(type_4 *)var_16;
              if (var_23 != '\0') {
                var_6 = var_6 >> 0x18 | (var_6 & 0xff0000) >> 8 | (var_6 & 0xff00) << 8 |
                         var_6 << 0x18;
              }
              var_16 = var_16 + 4;
              str_off = (type_14)var_6;
LAB_000578e2:
              attr_value.aux.shndx =
                   type_10::var_25
                             ((type_10 *)*var_27,var_24(iVar24,var_1),&str_off);
              attr_value.val.refval = str_off;
              if (var_26 == 0x31) goto LAB_000577b8;
              if (0x31 < var_26) {
                if ((var_26 == 0x6e) || (var_26 == 0x2007)) goto LAB_00057590;
                goto LAB_00057931;
              }
              goto LAB_00057a16;
            }
            if (var_6 != 3) {
              return false;
            }
            piVar4 = *(int **)(*var_27 + 8);
            var_22 = *(type_5 **)(*piVar4 + 0xc);
            if (var_22 == type_6::is_big_endian) {
              var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              var_23 = (*var_22)(piVar4);
            }
            uVar10 = *(type_8 *)var_16;
            if (var_23 != '\0') {
              uVar10 = var_28(*var_16,var_16[1]);
            }
            attr_value.aux.shndx._2_2_ = 0;
            attr_value.aux.shndx._0_2_ = uVar10;
            attr_value.val.blockval = var_16 + 2;
            var_16 = var_16 + 2 + attr_value.aux.shndx;
          }
          else {
            if (var_6 != 5) {
              if (var_6 != 6) {
                return false;
              }
              piVar4 = *(int **)(*var_27 + 8);
              var_22 = *(type_5 **)(*piVar4 + 0xc);
              if (var_22 == type_6::is_big_endian) {
                var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
              }
              else {
                var_23 = (*var_22)(piVar4);
              }
              var_19 = *(type_4 *)var_16;
              if (var_23 != '\0') {
                var_19 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                         var_19 << 0x18;
              }
              var_16 = var_16 + 4;
              str_off = (type_14)var_19;
              goto LAB_00057f30;
            }
            piVar4 = *(int **)(*var_27 + 8);
            var_22 = *(type_5 **)(*piVar4 + 0xc);
            if (var_22 == type_6::is_big_endian) {
              var_23 = (**(type_5 **)(*piVar4 + 0xe8))(piVar4);
            }
            else {
              var_23 = (*var_22)(piVar4);
            }
                    /* WARNING: Load size is inaccurate */
            attr_value.val.blockval._0_2_ = *var_16;
            if (var_23 != '\0') {
              attr_value.val.intval._0_2_ = var_28(*var_16,var_16[1]);
            }
            var_16 = var_16 + 2;
            attr_value.val.intval._2_6_ = 0;
          }
          goto joined_r0x00057583;
        }
        if (var_6 == 10) {
          attr_value.aux.shndx._1_3_ = 0;
          attr_value.aux.shndx._0_1_ = *var_16;
          attr_value.val.blockval = var_16 + 1;
          var_16 = var_16 + 1 + attr_value.aux.shndx;
          goto joined_r0x00057583;
        }
        if (var_6 < 0xb) {
          if (var_6 != 8) {
            if (var_6 != 9) {
              return false;
            }
LAB_00057851:
            var_36 = *var_16;
            aVar19.shndx._1_3_ = 0;
            aVar19.shndx._0_1_ = var_36;
            local_6c = var_16 + 1;
            if ((char)var_36 < '\0') {
              uVar28 = var_17(local_6c,&var_18,var_36);
              aVar19.shndx = (type_4)uVar28;
              var_32 = var_16;
              local_6c = var_16 + var_18;
            }
            else {
              var_18 = 1;
              var_32 = var_16;
            }
            attr_value.val.blockval = local_6c;
            var_16 = var_32 + aVar19.shndx + var_18;
            attr_value.aux = aVar19;
            goto LAB_00057d6a;
          }
          attr_value.val.blockval = var_16;
          var_18 = var_33((char *)var_16);
          var_16 = var_34 + var_18 + 1;
          if (var_26 == 0x31) goto LAB_00057590;
          if (0x31 < var_26) {
            if ((var_26 == 0x6e) || (var_26 == 0x2007)) {
              var_27[0x12] = (int)var_34;
            }
            goto LAB_00057590;
          }
          if ((var_26 == 1) || (var_26 != 3)) goto LAB_00057590;
          goto LAB_00057816;
        }
        if (var_6 < 0xd) {
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = *var_16;
          var_16 = var_16 + 1;
LAB_00057d6a:
          if (var_26 == 0x31) goto LAB_00057590;
          if (0x31 < var_26) goto LAB_00057d79;
          goto LAB_00057c63;
        }
        var_36 = *var_16;
        var_34 = var_16 + 1;
        if ((char)var_36 < '\0') {
          attr_value.val.intval = var_35(var_34,&var_18,var_36);
          var_34 = var_16 + var_18;
        }
        else {
          attr_value.val.intval._4_4_ = 0;
          attr_value.val.stringval = (char *)var_30(0,var_36);
          var_18 = 1;
          if ((var_36 & 0x40) != 0) {
            attr_value.val.intval._4_4_ = 0xffffffff;
            attr_value.val.stringval = (char *)(var_30(0,var_36) | 0xffffff80);
          }
        }
        var_16 = var_34;
        if (var_26 == 0x31) goto LAB_00057590;
        if (0x31 < var_26) {
LAB_00057d79:
          if ((var_26 != 0x6e) && (var_26 != 0x2007)) goto LAB_00057590;
          goto LAB_00057b31;
        }
        __position._M_current = (type_15 *)var_27[0xc];
        if (__position._M_current != (type_15 *)var_27[0xd]) goto LAB_0005759c;
LAB_00057700:
        std::
        vector<gold::Dwarf_die::type_15,_std::allocator<gold::Dwarf_die::type_15>var_37>
        ::_M_realloc_insert<const_gold::Dwarf_die::type_15&>
                  ((vector<gold::Dwarf_die::type_15,_std::allocator<gold::Dwarf_die::type_15>var_37>
                    *)(var_27 + 0xb),__position,&attr_value);
      }
      var_15 = var_15 + 8;
      var_1 = var_27[10];
    } while (var_15 != var_3);
  }
  if (var_1 == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwarf_reader.h",0x206,"has_children");
  }
LAB_000575e3:
  var_6 = (int)var_16 - (int)var_4;
  var_3 = var_6 + var_27[2];
  iVar24 = ((int)var_6 >> 0x1f) + var_27[3] + (type_4)var_20(var_6,var_27[2]);
  if ((*(type_3 *)(var_1 + 4) & 1) == 0) {
    var_27[8] = var_3;
    var_27[9] = iVar24;
  }
  else {
    var_27[6] = var_3;
    var_27[7] = iVar24;
  }
  *(type_16 *)(var_27 + 0xe) = 1;
  return true;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (labeled_statement label: (statement_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) (pointer_expression argument: (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: (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)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (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 (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: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) (pointer_expression argument: (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)) value: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (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: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3 MASKED(int *param_1,undefined4 param_2,undefined4 param_3)

{
  byte bVar1;
  void *__src;
  uint uVar2;
  int *piVar3;
  code *pcVar4;
  uint uVar5;
  void *pvVar6;
  ushort uVar7;
  ulonglong uVar8;
  char cVar9;
  int iVar10;
  uint uVar11;
  size_t __n;
  void *__dest;
  uint uVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  void *pvVar17;
  uint *puVar18;
  int iVar19;
  uint uVar20;
  ulonglong uVar21;
  ulonglong uVar22;
  int local_74;
  uint *local_70;
  byte *local_6c;
  uint *local_44;
  size_t local_40;
  undefined8 local_3c;
  uint local_30;
  uint local_2c;
  undefined8 local_28;
  uint local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x573eb;
  iVar13 = param_1[10];
  if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/dwarf_reader.cc",0x2a9,"read_attributes",param_3);
  }
  iVar15 = *param_1;
  iVar14 = *(int *)(iVar15 + 0x2c) + param_1[2] + *(int *)(iVar15 + 0x34);
  if ((uint)(*(int *)(iVar15 + 0x34) + *(int *)(iVar15 + 0x3c) + *(int *)(iVar15 + 0x2c)) <
      iVar14 + 1U) {
    FUN_00056bf0(iVar15);
    return 0;
  }
  if (iVar14 == 0) {
    return 0;
  }
  local_44 = (uint *)(param_1[4] + iVar14);
  iVar15 = *(int *)(iVar13 + 0xc) - *(int *)(iVar13 + 8);
  uVar20 = iVar15 >> 3;
  if (0xccccccc < uVar20) {
                    /* WARNING: Subroutine does not return */
    FUN_0022c7a0("vector::reserve");
  }
  __src = (void *)param_1[0xb];
  if ((uint)((param_1[0xd] - (int)__src >> 2) * -0x33333333) < uVar20) {
    pvVar6 = (void *)param_1[0xc];
    __n = (int)pvVar6 - (int)__src;
    if (uVar20 == 0) {
      __dest = (void *)0x0;
      pvVar17 = __src;
    }
    else {
      __dest = (void *)FUN_001e5200(uVar20 * 0x14);
      pvVar17 = (void *)param_1[0xb];
    }
    if (__src != pvVar6) {
      memmove(__dest,__src,__n);
    }
    if (pvVar17 != (void *)0x0) {
      FUN_001e6db0(pvVar17);
    }
    param_1[0xb] = (int)__dest;
    param_1[0xc] = __n + (int)__dest;
    param_1[0xd] = (int)(uVar20 * 0x14 + (int)__dest);
    iVar13 = param_1[10];
    if (uVar20 != 0) goto LAB_00057480;
  }
  else {
    if (uVar20 == 0) goto LAB_000575e3;
LAB_00057480:
    local_74 = 0;
    do {
      puVar18 = (uint *)(local_74 + *(int *)(iVar13 + 8));
      uVar20 = puVar18[1];
      uVar2 = *puVar18;
      uVar21 = local_28;
      if (uVar20 == 0x16) {
        uVar20 = (uint)(byte)*local_44;
        local_70 = (uint *)((int)local_44 + 1);
        if ((char)(byte)*local_44 < '\0') {
          uVar20 = FUN_00095970(local_70,&local_40,uVar20);
          local_70 = (uint *)(local_40 + (int)local_44);
          uVar21 = local_28;
        }
        else {
          local_40 = 1;
        }
        local_44 = local_70;
      }
      puVar18 = local_44;
      local_28._4_4_ = (uint)(uVar21 >> 0x20);
      uVar12 = (int)local_44 - iVar14;
      iVar13 = uVar12 + param_1[2];
      iVar19 = ((int)uVar12 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar12,param_1[2]);
      local_20 = 0;
      local_30 = uVar2;
      local_2c = uVar20;
      local_28 = uVar21;
      if (uVar20 == 0xe) {
        piVar3 = *(int **)(*param_1 + 8);
        iVar10 = *piVar3;
        pcVar4 = *(code **)(iVar10 + 0xc);
        if (*(int *)(*param_1 + 0x44) == 4) {
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          local_3c._4_4_ = 0;
          if (cVar9 != '\0') {
            local_3c._0_4_ =
                 (uint *)((uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8
                          | ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18);
          }
          local_44 = local_44 + 1;
        }
        else {
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(iVar10 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          uVar20 = local_44[1];
          local_3c._4_4_ = uVar20;
          if (cVar9 != '\0') {
            local_3c._4_4_ =
                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;
            local_3c._0_4_ =
                 (uint *)(uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                         uVar20 << 0x18);
          }
          local_44 = local_44 + 2;
        }
        local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
        uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        uVar8 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
        if (uVar2 != 0x31) {
          if (uVar2 < 0x32) {
            local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            if ((uVar2 != 1) &&
               (local_3c = CONCAT44(local_3c._4_4_,(uint *)local_3c),
               uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 3)) {
LAB_00057d36:
              param_1[0x15] = local_20;
              *(ulonglong *)(param_1 + 0x10) = uVar8;
              local_3c = uVar21;
              uVar22 = uVar8;
            }
          }
          else {
            local_3c = uVar21;
            uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c);
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_3c._4_4_,(uint *)local_3c),
               uVar21 = CONCAT44(local_3c._4_4_,(uint *)local_3c), uVar2 == 0x2007)) {
LAB_00057b8d:
              param_1[0x15] = local_20;
              *(ulonglong *)(param_1 + 0x13) = uVar21;
              uVar22 = uVar21;
            }
          }
        }
LAB_00057590:
        puVar18 = (uint *)param_1[0xc];
        if (puVar18 != (uint *)param_1[0xd]) goto LAB_0005759c;
LAB_00057700:
        local_28 = uVar22;
        FUN_0005b220(param_1 + 0xb,puVar18,&local_30);
      }
      else {
        if (0xe < uVar20) {
          if (uVar20 == 0x15) {
            bVar1 = (byte)*local_44;
            if ((char)bVar1 < '\0') {
              uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);
              local_44 = (uint *)(local_40 + (int)local_44);
            }
            else {
              local_40 = 1;
              uVar22 = (ulonglong)(uint)bVar1;
              local_44 = (uint *)((int)local_44 + 1);
            }
joined_r0x00057a0a:
            if (uVar2 == 0x31) {
LAB_000577b8:
              *(ulonglong *)(param_1 + 0x18) = uVar22;
            }
            else if (uVar2 < 0x32) {
LAB_00057a16:
              if ((uVar2 == 1) && (local_20 == 0)) {
                *(ulonglong *)(param_1 + 8) = uVar22;
              }
            }
            else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {
LAB_00057b31:
              local_28._0_4_ = (uint *)uVar22;
              if (uVar20 == 8) {
                param_1[0x12] = (int)(uint *)local_28;
              }
              else {
                uVar21 = uVar22;
                if (uVar20 == 0xe) goto LAB_00057b8d;
              }
            }
            else {
joined_r0x00057934:
              if (uVar2 == 0x47) {
                *(ulonglong *)(param_1 + 0x16) = uVar22;
              }
            }
          }
          else if (uVar20 < 0x16) {
            if (uVar20 != 0x11) {
              if (uVar20 < 0x12) {
                if (uVar20 != 0xf) {
                  if (uVar20 != 0x10) {
                    return 0;
                  }
                  iVar10 = *param_1;
                  iVar16 = *(int *)(iVar10 + 0x48);
                  if (2 < *(uint *)(iVar10 + 0x4c)) {
                    iVar16 = *(int *)(iVar10 + 0x44);
                  }
                  if (iVar16 == 4) goto LAB_00057e35;
LAB_000578c9:
                  uVar21 = FUN_0005b150(iVar10,&local_44);
                  goto LAB_000578e2;
                }
LAB_00057ac5:
                bVar1 = (byte)*local_44;
                if ((char)bVar1 < '\0') {
                  uVar22 = FUN_00095970((uint *)((int)local_44 + 1),&local_40,(uint)bVar1);
                  local_44 = (uint *)(local_40 + (int)local_44);
                }
                else {
                  local_40 = 1;
                  uVar22 = (ulonglong)(uint)bVar1;
                  local_44 = (uint *)((int)local_44 + 1);
                }
                goto LAB_00057d6a;
              }
              if (uVar20 == 0x13) {
                iVar10 = *param_1;
                goto LAB_00057993;
              }
              if (uVar20 < 0x14) {
                piVar3 = *(int **)(*param_1 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                uVar7 = (ushort)*local_44;
                if (cVar9 != '\0') {
                  uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
                }
                local_44 = (uint *)((int)local_44 + 2);
                uVar22 = (ulonglong)uVar7;
                goto joined_r0x00057a0a;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar12 = *local_44;
              uVar5 = local_44[1];
              uVar11 = uVar5;
              if (cVar9 != '\0') {
                uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                         uVar12 << 0x18;
                uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 |
                         uVar5 << 0x18;
              }
              uVar21 = CONCAT44(uVar11,uVar12);
              local_44 = local_44 + 2;
LAB_000579dc:
              local_3c = uVar21;
              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
              uVar22 = local_3c;
              goto joined_r0x00057a0a;
            }
            puVar18 = (uint *)((int)local_44 + 1);
            uVar20 = (uint)(byte)*local_44;
            uVar22 = (ulonglong)uVar20;
            local_44 = puVar18;
            if (uVar2 == 0x31) goto LAB_000577b8;
            uVar22 = (ulonglong)uVar20;
            if (uVar2 < 0x32) {
              uVar22 = (ulonglong)uVar20;
              if (uVar2 == 1) {
                param_1[8] = uVar20;
                param_1[9] = 0;
                uVar22 = (ulonglong)uVar20;
              }
            }
            else {
joined_r0x00057be3:
              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto joined_r0x00057934;
            }
          }
          else {
            if (uVar20 == 0x19) {
              local_28._0_4_ = (uint *)0x1;
              local_28._4_4_ = 0;
            }
            else {
              if (uVar20 < 0x1a) {
                if (uVar20 != 0x17) {
                  if (uVar20 != 0x18) {
                    return 0;
                  }
                  goto LAB_00057851;
                }
                iVar10 = *param_1;
                if (*(int *)(iVar10 + 0x44) != 4) {
                  uVar21 = FUN_0005b150(iVar10,&local_44);
                  goto LAB_000579dc;
                }
LAB_00057993:
                piVar3 = *(int **)(iVar10 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                uVar12 = *local_44;
                if (cVar9 != '\0') {
                  uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                           uVar12 << 0x18;
                }
                uVar21 = (ulonglong)uVar12;
                local_44 = local_44 + 1;
                goto LAB_000579dc;
              }
              if (uVar20 != 0x20) {
                if (uVar20 < 0x20) {
                  return 0;
                }
                if (1 < uVar20 - 0x1f01) {
                  return 0;
                }
                goto LAB_00057ac5;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              local_28._0_4_ = (uint *)*local_44;
              uVar12 = local_44[1];
              local_28._4_4_ = uVar12;
              if (cVar9 != '\0') {
                local_28._4_4_ =
                     (uint)(uint *)local_28 >> 0x18 | ((uint)(uint *)local_28 & 0xff0000) >> 8 |
                     ((uint)(uint *)local_28 & 0xff00) << 8 | (int)(uint *)local_28 << 0x18;
                local_28._0_4_ =
                     (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
              }
              local_44 = local_44 + 2;
            }
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28),
               uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007))
            goto LAB_00057590;
joined_r0x00057e18:
            uVar22 = uVar8;
            if (uVar2 == 3) {
              if (uVar20 == 8) {
LAB_00057816:
                local_28._0_4_ = (uint *)uVar8;
                param_1[0xf] = (int)(uint *)local_28;
                uVar22 = uVar8;
              }
              else {
                uVar21 = local_3c;
                if (uVar20 == 0xe) goto LAB_00057d36;
              }
            }
          }
          goto LAB_00057590;
        }
        if (uVar20 == 7) {
          piVar3 = *(int **)(*param_1 + 8);
          pcVar4 = *(code **)(*piVar3 + 0xc);
          if (pcVar4 == FUN_0003a350) {
            cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
          }
          else {
            cVar9 = (*pcVar4)(piVar3);
          }
          local_3c._0_4_ = (uint *)*local_44;
          uVar12 = local_44[1];
          local_3c._4_4_ = uVar12;
          if (cVar9 != '\0') {
            local_3c._4_4_ =
                 (uint)(uint *)local_3c >> 0x18 | ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                 ((uint)(uint *)local_3c & 0xff00) << 8 | (int)(uint *)local_3c << 0x18;
            local_3c._0_4_ =
                 (uint *)(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                         uVar12 << 0x18);
          }
          local_44 = local_44 + 2;
LAB_00057f30:
          local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
          local_28._4_4_ = local_3c._4_4_;
          local_28._0_4_ = (uint *)local_3c;
          goto LAB_00057c54;
        }
        if (uVar20 < 8) {
          if (uVar20 == 4) {
            piVar3 = *(int **)(*param_1 + 8);
            pcVar4 = *(code **)(*piVar3 + 0xc);
            if (pcVar4 == FUN_0003a350) {
              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
            }
            else {
              cVar9 = (*pcVar4)(piVar3);
            }
            local_20 = *local_44;
            if (cVar9 != '\0') {
              local_20 = local_20 >> 0x18 | (local_20 & 0xff0000) >> 8 | (local_20 & 0xff00) << 8 |
                         local_20 << 0x18;
            }
            local_28._0_4_ = local_44 + 1;
            local_44 = (uint *)((int)(uint *)local_28 + local_20);
LAB_00057c54:
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          }
          else {
            if (4 < uVar20) {
              if (uVar20 != 5) {
                if (uVar20 != 6) {
                  return 0;
                }
                piVar3 = *(int **)(*param_1 + 8);
                pcVar4 = *(code **)(*piVar3 + 0xc);
                if (pcVar4 == FUN_0003a350) {
                  cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
                }
                else {
                  cVar9 = (*pcVar4)(piVar3);
                }
                local_3c._0_4_ = (uint *)*local_44;
                local_3c._4_4_ = 0;
                if (cVar9 != '\0') {
                  local_3c._0_4_ =
                       (uint *)((uint)(uint *)local_3c >> 0x18 |
                                ((uint)(uint *)local_3c & 0xff0000) >> 8 |
                                ((uint)(uint *)local_3c & 0xff00) << 8 |
                               (int)(uint *)local_3c << 0x18);
                }
                local_44 = local_44 + 1;
                goto LAB_00057f30;
              }
              piVar3 = *(int **)(*param_1 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar7 = (ushort)*local_44;
              if (cVar9 != '\0') {
                uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
              }
              local_28._0_4_ = (uint *)(uint)uVar7;
              local_44 = (uint *)((int)local_44 + 2);
              local_28._4_4_ = 0;
              goto LAB_00057c54;
            }
            if (uVar20 == 1) {
              iVar10 = *param_1;
              if (*(int *)(iVar10 + 0x48) != 4) goto LAB_000578c9;
LAB_00057e35:
              piVar3 = *(int **)(iVar10 + 8);
              pcVar4 = *(code **)(*piVar3 + 0xc);
              if (pcVar4 == FUN_0003a350) {
                cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
              }
              else {
                cVar9 = (*pcVar4)(piVar3);
              }
              uVar20 = *local_44;
              if (cVar9 != '\0') {
                uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
                         uVar20 << 0x18;
              }
              uVar21 = (ulonglong)uVar20;
              local_44 = local_44 + 1;
LAB_000578e2:
              local_3c = uVar21;
              local_20 = FUN_00056b30(*param_1,iVar13,iVar19,&local_3c);
              uVar22 = local_3c;
              if (uVar2 == 0x31) goto LAB_000577b8;
              if (0x31 < uVar2) goto joined_r0x00057be3;
              goto LAB_00057a16;
            }
            if (uVar20 != 3) {
              return 0;
            }
            piVar3 = *(int **)(*param_1 + 8);
            pcVar4 = *(code **)(*piVar3 + 0xc);
            if (pcVar4 == FUN_0003a350) {
              cVar9 = (**(code **)(*piVar3 + 0xe8))(piVar3);
            }
            else {
              cVar9 = (*pcVar4)(piVar3);
            }
            uVar7 = (ushort)*local_44;
            if (cVar9 != '\0') {
              uVar7 = CONCAT11((byte)*local_44,*(byte *)((int)local_44 + 1));
            }
            local_20 = (uint)uVar7;
            local_28._0_4_ = (uint *)((int)local_44 + 2);
            uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
            local_44 = (uint *)((int)(uint *)local_28 + local_20);
          }
          if ((uVar2 != 0x31) && (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 < 0x32))
          {
LAB_00057c63:
            uVar8 = uVar22;
            if (uVar2 != 1) goto joined_r0x00057e18;
          }
          goto LAB_00057590;
        }
        if (uVar20 == 10) {
          local_28._0_4_ = (uint *)((int)local_44 + 1);
          local_20 = (uint)(byte)*local_44;
          local_44 = (uint *)((int)(uint *)local_28 + local_20);
          goto LAB_00057c54;
        }
        if (uVar20 < 0xb) {
          if (uVar20 != 8) {
            if (uVar20 != 9) {
              return 0;
            }
LAB_00057851:
            uVar12 = (uint)(byte)*local_44;
            local_6c = (byte *)((int)local_44 + 1);
            if ((char)(byte)*local_44 < '\0') {
              uVar12 = FUN_00095970(local_6c,&local_40,uVar12);
              local_70 = local_44;
              local_6c = (byte *)((int)local_44 + local_40);
            }
            else {
              local_40 = 1;
              local_70 = local_44;
            }
            uVar22 = CONCAT44(local_28._4_4_,local_6c);
            local_44 = (uint *)((int)local_70 + uVar12 + local_40);
            local_20 = uVar12;
            goto LAB_00057d6a;
          }
          local_28._0_4_ = local_44;
          local_40 = strlen((char *)local_44);
          uVar8 = CONCAT44(local_28._4_4_,(uint *)local_28);
          local_44 = (uint *)((int)puVar18 + local_40 + 1);
          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          if (uVar2 == 0x31) goto LAB_00057590;
          if (0x31 < uVar2) {
            if ((uVar2 == 0x6e) ||
               (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 == 0x2007)) {
              param_1[0x12] = (int)puVar18;
              uVar22 = uVar8;
            }
            goto LAB_00057590;
          }
          uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28);
          if ((uVar2 == 1) || (uVar22 = CONCAT44(local_28._4_4_,(uint *)local_28), uVar2 != 3))
          goto LAB_00057590;
          goto LAB_00057816;
        }
        if (uVar20 < 0xd) {
          uVar22 = (ulonglong)(byte)*local_44;
          local_44 = (uint *)((int)local_44 + 1);
LAB_00057d6a:
          if (uVar2 == 0x31) goto LAB_00057590;
          if (0x31 < uVar2) goto LAB_00057d79;
          goto LAB_00057c63;
        }
        bVar1 = (byte)*local_44;
        uVar12 = (uint)bVar1;
        puVar18 = (uint *)((int)local_44 + 1);
        if ((char)bVar1 < '\0') {
          uVar22 = FUN_00095a30(puVar18,&local_40,uVar12);
          puVar18 = (uint *)((int)local_44 + local_40);
        }
        else {
          uVar22 = (ulonglong)uVar12;
          local_40 = 1;
          if ((bVar1 & 0x40) != 0) {
            uVar22 = CONCAT44(0xffffffff,uVar12 | 0xffffff80);
          }
        }
        local_44 = puVar18;
        if (uVar2 == 0x31) goto LAB_00057590;
        if (0x31 < uVar2) {
LAB_00057d79:
          if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00057590;
          goto LAB_00057b31;
        }
        puVar18 = (uint *)param_1[0xc];
        if (puVar18 == (uint *)param_1[0xd]) goto LAB_00057700;
LAB_0005759c:
        *puVar18 = local_30;
        puVar18[1] = local_2c;
        *(ulonglong *)(puVar18 + 2) = uVar22;
        puVar18[4] = local_20;
        param_1[0xc] = (int)(puVar18 + 5);
        local_28 = uVar22;
      }
      local_74 = local_74 + 8;
      iVar13 = param_1[10];
    } while (local_74 != iVar15);
  }
  if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/dwarf_reader.h",0x206,"has_children",0);
  }
LAB_000575e3:
  uVar20 = (int)local_44 - iVar14;
  iVar14 = uVar20 + param_1[2];
  iVar15 = ((int)uVar20 >> 0x1f) + param_1[3] + (uint)CARRY4(uVar20,param_1[2]);
  if ((*(byte *)(iVar13 + 4) & 1) == 0) {
    param_1[8] = iVar14;
    param_1[9] = iVar15;
  }
  else {
    param_1[6] = iVar14;
    param_1[7] = iVar15;
  }
  *(undefined1 *)(param_1 + 0xe) = 1;
  return 1;
}

